Fehler beim speichern der Mail (MySQL Datenbank)

Hier melden JVerein-Benutzer ihre Fehler

Moderator: heiner

Antworten
Laplace62
Beiträge: 4
Registriert: Samstag 13. März 2021, 18:43
Verein: IC Burginia zu Burgsteinfurt e.V.
Mitglieder: 60
JVerein-Version: 2.8.18
Betriebssystem: Windows

Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von Laplace62 »

Hallo zusammen,
ich musste nach einem Serverwechsel die MySQL Datenbank auf den neuen Server migrieren.
JVerein, Hibiscus läuft völlig Problemlos bis auf eine Kleinigkeit.

Beim eMail Versand gibt es folgende Fehlermeldung:

Fehler bei speichern der Mail: insert failed, rollback successful; nested exception is:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'versand' cannot be null
java.rmi.RemoteException: insert failed, rollback successful; nested exception is:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'versand' cannot be null
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:700)
at de.willuhn.datasource.db.AbstractDBObject.store(AbstractDBObject.java:314)
at de.jost_net.JVerein.gui.control.MailControl.handleStore(MailControl.java:560)
at de.jost_net.JVerein.gui.control.MailControl$1.handleAction(MailControl.java:311)
at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:174)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at de.willuhn.jameica.gui.GUI$6.run(GUI.java:899)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4594)
at de.willuhn.jameica.gui.GUI.startSync(GUI.java:895)
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:4145)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1055)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3958)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3561)
at de.willuhn.jameica.gui.GUI.loop(GUI.java:916)
at de.willuhn.jameica.gui.GUI.init(GUI.java:327)
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:75)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'versand' cannot be null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2495)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1903)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2124)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2058)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5158)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2043)
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:655)
... 21 more

Hat jemand eine Idee, wie ich das Problem beseitigen kann?

LG Thomas Kühnemund
Benutzeravatar
dieseyer
Beiträge: 107
Registriert: Sonntag 24. Oktober 2010, 16:06
Wohnort: Stuttgart
Kontaktdaten:

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von dieseyer »

Hallo zusammen,

bei mir das gleiche Problem:
[Mon Aug 16 08:14:02 UTC 2021][ERROR][main][de.jost_net.JVerein.gui.control.MailControl.handleStore] Fehler bei speichern der Mail: insert failed, rollback successful; nested exception is:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'versand' cannot be nul
Column 'versand' cannot be null lässt sich doch sicher beheben - oder?
Bis dann - dieseyer
Laplace62
Beiträge: 4
Registriert: Samstag 13. März 2021, 18:43
Verein: IC Burginia zu Burgsteinfurt e.V.
Mitglieder: 60
JVerein-Version: 2.8.18
Betriebssystem: Windows

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von Laplace62 »

Hallo Heiner,
hast Du noch eine Idee was ich machen kann?
Eine neu Installation mit einspielen des Datenbank Backups auf meinem Testsystem löst das Problem auch nicht.

LG Thomas
NicoB77
Beiträge: 137
Registriert: Freitag 21. April 2017, 21:14
Verein: Pollingua e.V.
Mitglieder: 50
JVerein-Version: Entwicklerversion
Betriebssystem: Linux

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von NicoB77 »

Ihr könntet versuchen, in der Tabelle "mailempfaenger" die "not null"-Bedingung der Spalte "versand" zu entfernen. Eventuell muss das auch für die Spalte "versand" in der Tabelle "mail" gemacht werden. Im Code wird diese Bedingung zwar vorgegeben, aber sie ist nicht immer erfüllt. Und in der H2-Datenbank, die vermutlich die meisten Benutzer verwenden, wird sie nicht gesetzt (ist vermutlich ein Programmierfehler).
sbuer
Beiträge: 62
Registriert: Mittwoch 20. Januar 2021, 02:11
Mitglieder: 200
JVerein-Version: 2.8.19
Betriebssystem: Win

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von sbuer »

Hi,

alternativ mittels direkten Datenbankzugriff in der Tabelle Mail und Mailempfänger das Attribut Versand mit einem Dummy-Wert versehen. Da es sich bei beiden Attributen um einen Timestamp Type handelt, müsste das Format genau so aussehen: 2022-01-30 00:38:57.0

Ich hab das mal versucht bei mir zu rekonstrurieren - aber ich schaffe es nicht den Fehler reproduziert zu bekommen.

Gruß,
Stefan
Inoffizielles Release des Openjverein Forks
Repository: https://sbuerg.github.io/jverein_develop
Laplace62
Beiträge: 4
Registriert: Samstag 13. März 2021, 18:43
Verein: IC Burginia zu Burgsteinfurt e.V.
Mitglieder: 60
JVerein-Version: 2.8.18
Betriebssystem: Windows

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von Laplace62 »

Hz,

so ich habe mir das Schema mit der MySQL Workbench genau angeschaut.
In der Tabelle mail und mailempfänger ist die Spalte versand komplett mit dem Timestamp versehen.
Der Timestamp scheint auch durchgängig richtig zu sein.
Keine Zeile enthält hier den Wert null.

Wo könnte ich noch suchen?

LG Thomas
NicoB77
Beiträge: 137
Registriert: Freitag 21. April 2017, 21:14
Verein: Pollingua e.V.
Mitglieder: 50
JVerein-Version: Entwicklerversion
Betriebssystem: Linux

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von NicoB77 »

Die Datenbank erzwingt, dass die Spalte nicht leer ist, daher sind alle existierenden Zeilen korrekt gefüllt. Ich vermute, dass der Fehler dadurch entsteht, dass die E-Mail an mindestens einen Empfänger nicht erfolgreich verschickt wurde, und deshalb für diesen die Spalte "versand leer". Wegen der "not null"-Bedingung kann die ensprechende Zeile nicht in der Datenbank gespeichert werden, was die Exception auslöst. Entweder musst Du die entsprechenden E-Mail-Adressen identifizieren (falls sie nicht in der Log-Datei zu finden sind, Log-Level anpassen) und entfernen, oder die "not null"-Bedingung aus der Datenbank entfernen.
Laplace62
Beiträge: 4
Registriert: Samstag 13. März 2021, 18:43
Verein: IC Burginia zu Burgsteinfurt e.V.
Mitglieder: 60
JVerein-Version: 2.8.18
Betriebssystem: Windows

Re: Fehler beim speichern der Mail (MySQL Datenbank)

Beitrag von Laplace62 »

Nein,daran kann es nicht liegen. Der Fehler tritt auch bei einer Email auf die 100% funktioniert.
Antworten