Exception beim Anlegen einer SEPA-Sammellastschrift

 
leine
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 17
Dabei seit: 05 / 2013
Betreff:

Exception beim Anlegen einer SEPA-Sammellastschrift

 · 
Gepostet: 01.02.2015 - 18:23 Uhr  ·  #1
Hallo,

ich habe ein eventuell interessantes Problem. Ich habe eine neue leere SEPA-Sammellastschrift angelegt. Danach lege ich einzelne Buchungen in dem Sammler an. Ich gebe dazu den Namen des Zahlungspflichtigen in der entsprechenden Box ein und nutze dann das Drop-Down mit der gefundenen Autovervollständigung, um die Person auszuwählen. Die Person hat aber nun leider einen Umlaut im Namen (das gleiche passiert auch mit ß). Wenn ich es nun speichern möchte, bekomme ich die rote Fehlerbox, dass der Umlaut nicht im Namen erlaubt ist. Ich passe den Umlaut an und versuche noch einmal zu speichern. Dabei kommt dann folgende Exception:

Code

[Sun Feb 01 17:43:40 CET 2015][ERROR][de.willuhn.jameica.hbci.gui.controller.SepaSammelLastBuchungControl.handleStore] error while saving order
java.rmi.RemoteException: insert failed; nested exception is: 
        org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "SEPASLAST_ID"
NULL not allowed for column "SEPASLAST_ID"; SQL statement:
insert into SEPASLASTBUCHUNG (EMPFAENGER_BIC,PURPOSECODE,SEPASLAST_ID,EMPFAENGER_KONTO,ENDTOENDID,BETRAG,MANDATEID,EMPFAENGER_NAME,SIGDATE,ZWECK,CREDITORID) values (?,?,?,?,?,?,?,?,?,?,?) [23502-172]
        at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:695)
        at de.willuhn.datasource.db.AbstractDBObject.store(AbstractDBObject.java:308)
        at de.willuhn.jameica.hbci.gui.controller.AbstractSepaSammelTransferBuchungControl.store(AbstractSepaSammelTransferBuchungControl.java:266)
        at de.willuhn.jameica.hbci.gui.controller.SepaSammelLastBuchungControl.handleStore(SepaSammelLastBuchungControl.java:205)
        at de.willuhn.jameica.hbci.gui.views.SepaSammelLastBuchungNew$3.handleAction(SepaSammelLastBuchungNew.java:98)
        at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:177)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
        at de.willuhn.jameica.gui.GUI$5.run(GUI.java:815)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Unknown Source)
        at org.eclipse.swt.widgets.Display.syncExec(Unknown Source)
        at de.willuhn.jameica.gui.GUI.startSync(GUI.java:811)
        at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:171)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
        at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
        at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
        at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
        at de.willuhn.jameica.gui.GUI.loop(GUI.java:832)
        at de.willuhn.jameica.gui.GUI.init(GUI.java:315)
        at de.willuhn.jameica.system.Application.init(Application.java:148)
        at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
        at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "SEPASLAST_ID"
NULL not allowed for column "SEPASLAST_ID"; SQL statement:
insert into SEPASLASTBUCHUNG (EMPFAENGER_BIC,PURPOSECODE,SEPASLAST_ID,EMPFAENGER_KONTO,ENDTOENDID,BETRAG,MANDATEID,EMPFAENGER_NAME,SIGDATE,ZWECK,CREDITORID) values (?,?,?,?,?,?,?,?,?,?,?) [23502-172]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
        at org.h2.message.DbException.get(DbException.java:169)
        at org.h2.message.DbException.get(DbException.java:146)
        at org.h2.table.Column.validateConvertUpdateSequence(Column.java:295)
        at org.h2.table.Table.validateConvertUpdateSequence(Table.java:699)
        at org.h2.command.dml.Insert.insertRows(Insert.java:122)
        at org.h2.command.dml.Insert.update(Insert.java:86)
        at org.h2.command.CommandContainer.update(CommandContainer.java:79)
        at org.h2.command.Command.executeUpdate(Command.java:235)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:154)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:140)
        at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:649)
        ... 22 more



Dieses Problem tritt interessanterweise nicht auf, wenn ich rechtzeitig vor dem ersten Speichern der Buchung den Umlaut aus dem Namen entferne.

Ich benutze Jameica 2.6.2 mit Hibiscus 2.6.11.

Viele Grüße
Thomas
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10772
Dabei seit: 03 / 2005
Betreff:

Re: Exception beim Anlegen einer SEPA-Sammellastschrift

 · 
Gepostet: 02.02.2015 - 00:15 Uhr  ·  #2
Auf den Fehler bin ich kuerzlich auch bereits gestossen. Ist im Nightly-Build (von Jameica! - nicht Hibiscus!) bereits gefixt. Also mach ein Update auf die aktuellen Nightly-Builds von Jameica und Hibiscus oder warte auf die kommende Version 2.6.3 von Jameica und achte uebergangsweise darauf, die Sammellastschrift erst abzuspeichern, bevor du Buchungen hinzufuegst.

Das Problem hatte uebrigens nichts mit Umlauten zu tun sondern war ein Transaktionsfehler. Wenn beim Versuch, die Buchung abzuspeichern z.Bsp. eine Pflichteingabe fehlte, wurde die Transaktion zurueckgerollt. Dabei wurde jedoch versehentlich auch die Zordnung der Buchung zum Sammelauftrag zurueckgerollt. Das kannst du wie gesagt vermeiden, indem du den Sammelauftrag erst abspeicherst und dann erst auf "Neue Buchung hinzufügen" klickst.

Hatte ich vor 16 Tagen gefixt (https://github.com/willuhn/datasource/commit/2365a2185b6030121e5f9ce343e61f42f8586d8f)
leine
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 17
Dabei seit: 05 / 2013
Betreff:

Re: Exception beim Anlegen einer SEPA-Sammellastschrift

 · 
Gepostet: 02.02.2015 - 19:43 Uhr  ·  #3
Klasse, das war es. Mit den nightly-Versionen funktioniert es. Vielen Dank!
Gewählte Zitate für Mehrfachzitierung:   0