Seite 1 von 3

Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Freitag 4. November 2022, 14:01
von p1tt1
Moin!

Ich bin dabei eine neue Verein-Instanz in JVerein aufzusetzen.
Beim Anlegen von Beitragsgruppen erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSWindow.contentView()" because "window" is null
	at org.eclipse.swt.widgets.Control.calculateVisibleRegion(Control.java:775)
	at org.eclipse.swt.widgets.Control.getVisibleRegion(Control.java:2060)
	at org.eclipse.swt.widgets.Control.isObscured(Control.java:2341)
	at org.eclipse.swt.widgets.Scrollable.scrollClipViewToPoint(Scrollable.java:347)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:6565)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSScrollView.setDocumentView(NSScrollView.java:91)
	at org.eclipse.swt.widgets.Scrollable.setZOrder(Scrollable.java:396)
	at org.eclipse.swt.widgets.Control.createWidget(Control.java:1026)
	at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:167)
	at org.eclipse.swt.widgets.Text.createWidget(Text.java:596)
	at org.eclipse.swt.widgets.Control.<init>(Control.java:126)
	at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:76)
	at org.eclipse.swt.widgets.Text.<init>(Text.java:140)
	at de.willuhn.jameica.gui.style.StyleFactoryDefaultImpl.createTextArea(StyleFactoryDefaultImpl.java:73)
	at de.willuhn.jameica.gui.input.TextAreaInput.getTextWidget(TextAreaInput.java:51)
	at de.willuhn.jameica.gui.input.TextInput.getControl(TextInput.java:116)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:119)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:100)
	at de.willuhn.jameica.gui.util.Container.addLabelPair(Container.java:98)
	at de.jost_net.JVerein.gui.view.BeitragsgruppeDetailView.bind(BeitragsgruppeDetailView.java:81)
	at de.willuhn.jameica.gui.GUI$5.run(GUI.java:714)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:911)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5048)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:907)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:597)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:532)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:569)
	at de.jost_net.JVerein.gui.action.BeitragsgruppeDetailAction.handleAction(BeitragsgruppeDetailAction.java:52)
	at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:174)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:911)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5048)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:907)
	at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:168)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4441)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4227)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3837)
	at de.willuhn.jameica.gui.GUI.loop(GUI.java:928)
	at de.willuhn.jameica.gui.GUI.init(GUI.java:331)
	at de.willuhn.jameica.system.Application.init(Application.java:145)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:87)
	at de.willuhn.jameica.Main.main(Main.java:78)
Ich verwende openjverein/jverein Version 2.8.19

Gib es Ideen, dieses Problem zu beheben?

Viele Grüße
thomas

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Samstag 5. November 2022, 08:54
von hibiscus
Kann es sein, dass du MacOS Ventura verwendest? Das scheint ein Bug direkt in SWT zu sein. Unter https://bugs.eclipse.org/bugs/show_bug.cgi?id=559198 gibt es einen Bugreport dazu und leider noch keine Lösung.

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Samstag 5. November 2022, 23:34
von p1tt1
Das scheint der Ursprung des Fehlers zu sein.
Ich nutze MacOS Monterey Version 12.6 auf einem Macbook Air M1, 2020.

Wenn ich Benutzer-Konfiguration in Jameica in einer Ubuntu-VM ausführe, tritt dieser Fehler nicht auf.

Danke für die schnelle Problemfindung!

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Sonntag 25. August 2024, 17:26
von mathias_ocm
Hallo,

ich bekomme denselben Fehler beim (ersten) Anlegen eines Vereins. Ich verwende auch MacOS (aktuell Sonoma 14.6.1) . Gibt es dafür irgendeine Lösung oder einen Workaround? Würde nur sehr ungern auf eine andere OS-Umgebung ausweichen (ginge maximal auf einer virtuellen Maschine).

Ich habe schon versucht, die Beitragsgruppen über einen Import von Mitgliederdaten zu erstellen, was auch geklappt hat. Allerdings kann ich die so erstellten Gruppen nicht bearbeiten bzw. erhalte wieder dieselbe NPE:

Code: Alles auswählen

java.lang.NullPointerException
	at org.eclipse.swt.widgets.Control.calculateVisibleRegion(Control.java:775)
	at org.eclipse.swt.widgets.Control.getVisibleRegion(Control.java:2060)
	at org.eclipse.swt.widgets.Control.isObscured(Control.java:2341)
	at org.eclipse.swt.widgets.Scrollable.scrollClipViewToPoint(Scrollable.java:347)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:6811)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSScrollView.setDocumentView(NSScrollView.java:91)
	at org.eclipse.swt.widgets.Scrollable.setZOrder(Scrollable.java:396)
	at org.eclipse.swt.widgets.Control.createWidget(Control.java:1026)
	at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:167)
	at org.eclipse.swt.widgets.Text.createWidget(Text.java:596)
	at org.eclipse.swt.widgets.Control.<init>(Control.java:126)
	at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:76)
	at org.eclipse.swt.widgets.Text.<init>(Text.java:140)
	at de.willuhn.jameica.gui.style.StyleFactoryDefaultImpl.createTextArea(StyleFactoryDefaultImpl.java:73)
	at de.willuhn.jameica.gui.input.TextAreaInput.getTextWidget(TextAreaInput.java:51)
	at de.willuhn.jameica.gui.input.TextInput.getControl(TextInput.java:116)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:120)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:101)
	at de.willuhn.jameica.gui.util.Container.addLabelPair(Container.java:98)
	at de.jost_net.JVerein.gui.view.BeitragsgruppeDetailView.bind(BeitragsgruppeDetailView.java:81)
	at de.willuhn.jameica.gui.GUI$5.run(GUI.java:724)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:921)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:917)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:601)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:536)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:573)
	at de.jost_net.JVerein.gui.action.BeitragsgruppeDetailAction.handleAction(BeitragsgruppeDetailAction.java:52)
	at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:174)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:921)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:917)
	at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:168)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4646)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4413)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3989)
	at de.willuhn.jameica.gui.GUI.loop(GUI.java:938)
	at de.willuhn.jameica.gui.GUI.init(GUI.java:335)
	at de.willuhn.jameica.system.Application.init(Application.java:145)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:87)
	at de.willuhn.jameica.Main.main(Main.java:78)


Verwende jeweils die aktuelle Version von jameica (2.10.4), hibiscus (2.10.20) und jVerein (2.8.22).

Viele Grüße,
Mathias

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Freitag 4. Oktober 2024, 21:38
von mathias_ocm
Gibt es zu dieser NPE irgendetwas Neues? Kann doch nicht sein, dass ein grundlegendes Problem im Java AWT für ein wichtiges Betriebssystem jahrelang nicht behoben wird, oder? Oder liegt der Fehler teilweise doch irgendwo in JVerein? Die anderen Dialoge und Programmteile werden ja schließlich auch korrekt unter MacOS verarbeitet.

Ohne die Möglichkeit, Beitragsgruppen erstellen bzw. pflegen zu können, ist das Programm für uns leider unbrauchbar. Das wäre sehr schade, weil alle anderen Bedürfnisse unserer Finanzverwaltung von dem Programm abgedeckt werden. :(

Ich kann auch gerne bei der Fehlersuche behilflich sein. Aber da meine aktive Programmierzeit schon lange zurück liegt und ich mit dem zugrunde liegenden Framework nicht vertraut bin, bräuchte ich schon ein wenig Einstiegshilfe, an welcher Stelle ich anfangen soll.

Auch nochmal die Frage nach möglichen Workarounds: Wenn ich die Software bspw. auf einer Windows- oder Linux-VM einrichte und dort die Beitragsgruppen einrichte, kann ich die Daten dann nachfolgend in die MacOS-Umgebung exportieren? Und falls ja, wie müsste ich dann vorgehen, wenn ich in der Zukunft neue oder geänderte Beitragsgruppen einpflegen will?

Viele Grüße,
Mathias

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Montag 7. Oktober 2024, 15:33
von lenilsas
Kommt der Fehler nur bei den Beitragsgruppen oder noch irgendwo anders in JVerein oder Hibiscus?
Du könntest auch die Aktuelle JVerein Version probieren, da wir hier auch Änderungen vorgenommen haben könnte es sein, dass sich das Verhalten geändert hat.

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Freitag 15. November 2024, 11:28
von yero
Ich habe leider auch einen solchen Fehler, System würde neu installiert.
Hibiscus funktioniert ohne Probleme und der Start von JVerein klappe bis zum Anlegen der Beitragsgruppen. Um nach weiteren Fehlern zu suchen, habe ich mich durch JVerein durchgeklickt, es traten keine weiteren Fehler auf.

Ich würde mich über die Hilfe von Euch sehr freuen, an dieser Stelle schon einmal DANKE!

System: MacOS Sonoma 14.5
Jameica 2.10.4
Hibiscus 2.10.21
HBCI4Java-Version 3.1.8
JVerein 2.8.18

Code: Alles auswählen

java.lang.NullPointerException
	at org.eclipse.swt.widgets.Control.calculateVisibleRegion(Control.java:775)
	at org.eclipse.swt.widgets.Control.getVisibleRegion(Control.java:2060)
	at org.eclipse.swt.widgets.Control.isObscured(Control.java:2341)
	at org.eclipse.swt.widgets.Scrollable.scrollClipViewToPoint(Scrollable.java:347)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:6811)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSScrollView.setDocumentView(NSScrollView.java:91)
	at org.eclipse.swt.widgets.Scrollable.setZOrder(Scrollable.java:396)
	at org.eclipse.swt.widgets.Control.createWidget(Control.java:1026)
	at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:167)
	at org.eclipse.swt.widgets.Text.createWidget(Text.java:596)
	at org.eclipse.swt.widgets.Control.<init>(Control.java:126)
	at org.eclipse.swt.widgets.Scrollable.<init>(Scrollable.java:76)
	at org.eclipse.swt.widgets.Text.<init>(Text.java:140)
	at de.willuhn.jameica.gui.style.StyleFactoryDefaultImpl.createTextArea(StyleFactoryDefaultImpl.java:73)
	at de.willuhn.jameica.gui.input.TextAreaInput.getTextWidget(TextAreaInput.java:51)
	at de.willuhn.jameica.gui.input.TextInput.getControl(TextInput.java:116)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:120)
	at de.willuhn.jameica.gui.input.AbstractInput.paint(AbstractInput.java:101)
	at de.willuhn.jameica.gui.util.Container.addLabelPair(Container.java:98)
	at de.jost_net.JVerein.gui.view.BeitragsgruppeDetailView.bind(BeitragsgruppeDetailView.java:81)
	at de.willuhn.jameica.gui.GUI$5.run(GUI.java:724)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:921)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:917)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:601)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:536)
	at de.willuhn.jameica.gui.GUI.startView(GUI.java:573)
	at de.jost_net.JVerein.gui.action.BeitragsgruppeDetailAction.handleAction(BeitragsgruppeDetailAction.java:52)
	at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:174)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:921)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250)
	at de.willuhn.jameica.gui.GUI.startSync(GUI.java:917)
	at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:168)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4646)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4413)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3989)
	at de.willuhn.jameica.gui.GUI.loop(GUI.java:938)
	at de.willuhn.jameica.gui.GUI.init(GUI.java:335)
	at de.willuhn.jameica.system.Application.init(Application.java:145)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:87)
	at de.willuhn.jameica.Main.main(Main.java:78)

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Sonntag 17. November 2024, 22:19
von lenilsas
Du verwendest noch die alte JVerein version, stelle bitte auf openJVerein um da das alte JVerein nicht mehr weiterentwickelt wird.
Eigentlich sollte bei dir bereits das neue Repository eingetragen sein, sonst der Anleitung unter https://openjverein.gitbook.io/doku/all ... stallation folgen.
Teste dann mit der neuen Version bitte noch einmal.

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Mittwoch 20. November 2024, 16:59
von mathias_ocm
lenilsas hat geschrieben: Montag 7. Oktober 2024, 15:33 Kommt der Fehler nur bei den Beitragsgruppen oder noch irgendwo anders in JVerein oder Hibiscus?
Du könntest auch die Aktuelle JVerein Version probieren, da wir hier auch Änderungen vorgenommen haben könnte es sein, dass sich das Verhalten geändert hat.
Der Fehler hält sich leider hartnäckig, auch in der aktuellen JVerein-Version 2.8.23 von Anfang November. Wie oben beschrieben tritt der Fehler nur beim Anlegen oder Ändern von Beitragsgruppen auf. Alle anderen Komponenten von Hibiscus und JVerein scheinen unter MacOS genauso zu funktionieren wie unter MacOS.

Ich arbeite als Workaround bereits seit einiger Zeit mit der Windows-Version in einer VM. Aber das hat natürlich auch seine Tücken. Leider wurde kürzlich die virtuelle (VMware Fusion) Maschine beschädigt. Es gab zwar ein recht zeitnahes Backup, aber einige Daten musste ich doch von Hand nachpflegen. Um das in Zukunft zu vermeiden und einen echten Parallelbetrieb von MacOS und Windows-Version zu ermöglichen, habe ich jetzt das Benutzerverzeichnis aus der VM heraus auf einen SMB-Share verschoben. Unter Windows funktioniert das auch ganz gut (etwas langsamer beim Start, aber im Betrieb völlig ok). Aber auch da reagiert die MacOS-Variante völlig anders. Wenn ich den SMB-Share als Arbeitsverzeichnis wähle, gibt es einen weiteren Fehler und ein Start von Jameica ist nicht möglich:

Code: Alles auswählen

de.willuhn.jameica.system.JameicaException: java.io.IOException: Operation not supported
	at de.willuhn.jameica.services.LockService.init(LockService.java:116)
	at de.willuhn.boot.BootLoader.resolve(BootLoader.java:139)
	at de.willuhn.boot.BootLoader.resolve(BootLoader.java:119)
	at de.willuhn.boot.BootLoader.getBootable(BootLoader.java:70)
	at de.willuhn.jameica.system.Application.init(Application.java:103)
	at de.willuhn.jameica.system.Application.newInstance(Application.java:87)
	at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: java.io.IOException: Operation not supported
	at java.base/sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
	at java.base/sun.nio.ch.FileDispatcherImpl.lock(Unknown Source)
	at java.base/sun.nio.ch.FileChannelImpl.tryLock(Unknown Source)
	at java.base/java.nio.channels.FileChannel.tryLock(Unknown Source)
	at de.willuhn.jameica.services.LockService.init(LockService.java:87)
	... 6 more
Ich vermute, dass es mit der unter MacOS doch etwas penibleren Einhaltung von Zugriffsrechten zu tun hat. Ich habe noch nicht probiert, ob der Fehler auch auftritt, wennn man das Verzeichnis statt mit SMB mittels AFP oder NFS einbindet.

Wahrscheinlich werde ich in Zukunft die Daten stattdessen in eine (mysql/mariadb) SQL-Datenbank auslagern. Allerdings hatte ich diesbezüglich beim ersten Versuch auch Probleme, die wohl von der Ablage von Rechnungsdokumenten mittels der DMS-Funktion und/oder der Verwendung nutzerspezifischer Felder herrührten. Jedenfalls wurden beim Wiedereinspielen der Daten aus einem Diagnose-Backup Teile der Datenbank nicht erfolgreich importiert und etliche Fehlermeldungen ausgegeben. Ich hatte leider noch keine Zeit, mir das im Detail anzusehen. Aber es ist schon schade, dass diese an sich sehr tolle Software unter MacOS nicht aus der Box heraus funktioniert.

Re: Fehler (NullPointerException) beim Erstellen neuer Beitragsgruppen

Verfasst: Mittwoch 20. November 2024, 17:11
von hibiscus
Das hat nichts damit zu tun, dass MacOS Rechte penibler prüft sondern im Gegenteil MacOS das Sperren von Dateien auf SMB/CIFS-Shares nicht kann. Hier gibt es leider keine mir bekannte Lösung ausser dass Locking-Support im SMB-Client von MacOS nachgerüstet wird. Versuche es mal mit NFS.