Geronimo
  1. Geronimo
  2. GERONIMO-3907

Persistence Exception is not visible/lost for client.

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.2, 2.1
    • Fix Version/s: 2.1.1
    • Component/s: persistence
    • Security Level: public (Regular issues)
    • Labels:
      None
    • Environment:

      Linux, Windows

      Description

      I am trying an insert on a table. The Entity class is wrong annotated, one column was renamed in the table. Then the following situation occurs.

      The call to persist(entity) is successfully, no exception is thrown. On leaving the ejb container and returning to tomact a commit is performed (it's a managed datasource, so container performs commit). This leads to the insert on database. This insert fails, a rollback is performed. On return to the JSF bean no exception can be seen by the bean. In the same class i have got a query method. If i replace the call to persist with the call to the query method everything works ok. The exception is thrown and is visible at the client site.

      This is the geronimo console output. The last line comes from the JSB bean which reports a successful insert.

      11:58:04,390 WARN [Transaction] Unexpected exception from beforeCompletion; transaction will roll back
      <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
      at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
      at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
      at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
      at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
      at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499)
      at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
      at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
      at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245)
      at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141)
      at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75)
      at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
      at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
      at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
      at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
      at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
      at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
      at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
      at $Proxy75.anlegenBenutzer(Unknown Source)
      at de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler.anlegenBenutzer(BenutzerControler.java:44)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
      at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
      at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
      at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75)
      at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)
      at javax.faces.component.UICommand.broadcast(UICommand.java:121)
      at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292)
      at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
      at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
      at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
      at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
      at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396)
      at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Spalte »letzte_benutzer_gruppe« von Relation »benutzer« existiert nicht

      {prepstmnt 17230170 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info, sperrgrund, verknuepft_mit, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 31, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

      [code=0, state=42703]
      FailedObject: de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerPAO@8b394
      at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
      at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108)
      at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73)
      at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
      at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
      at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
      at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
      at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
      ... 53 more
      Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Spalte »letzte_benutzer_gruppe« von Relation »benutzer« existiert nicht

      {prepstmnt 17230170 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info, sperrgrund, verknuepft_mit, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 31, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

      [code=0, state=42703]
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
      at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97)
      ... 60 more
      [de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler] >> $$Success from neuer Benutzer = true

        Issue Links

          Activity

          Joe Bohn made changes -
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Hide
          Joe Bohn added a comment -

          As confirmed in comments the core issue was resolved in 2.1.1.

          Show
          Joe Bohn added a comment - As confirmed in comments the core issue was resolved in 2.1.1.
          Joe Bohn made changes -
          Link This issue is related to GERONIMO-4576 [ GERONIMO-4576 ]
          Joe Bohn made changes -
          Fix Version/s 2.1.4 [ 12313380 ]
          Fix Version/s 2.2 [ 12312965 ]
          Fix Version/s 2.1.1 [ 12312941 ]
          Joe Bohn made changes -
          Link This issue relates to GERONIMO-4576 [ GERONIMO-4576 ]
          Hide
          Joe Bohn added a comment -

          I created http://issues.apache.org/jira/browse/GERONIMO-4576 to address the further enhancements that are mentioned in this JIRA so that it can be closed as it appears the original problem was resolved in Geronimo 2.1.1.

          Show
          Joe Bohn added a comment - I created http://issues.apache.org/jira/browse/GERONIMO-4576 to address the further enhancements that are mentioned in this JIRA so that it can be closed as it appears the original problem was resolved in Geronimo 2.1.1.
          Joe Bohn made changes -
          Priority Blocker [ 1 ] Minor [ 4 ]
          Hide
          Joe Bohn added a comment -

          I have updated the status of this problem to "minor" from "blocker" because it appears that the original issue (no error returned) has been resolved. The remaining issue seems to be the detail of the error reported. Are there any additional enhancements planned for this JIRA in this area? If not, we should close this issue. Actually, since the core problem has been resolved we should perhaps close the issue and open a new issue requesting the enhancement. If there are no additional enhancements planned for Geronimo 2.1.4 we should remove it from the fix versions. It appears that the original problem was fixed in 2.1.1.

          Show
          Joe Bohn added a comment - I have updated the status of this problem to "minor" from "blocker" because it appears that the original issue (no error returned) has been resolved. The remaining issue seems to be the detail of the error reported. Are there any additional enhancements planned for this JIRA in this area? If not, we should close this issue. Actually, since the core problem has been resolved we should perhaps close the issue and open a new issue requesting the enhancement. If there are no additional enhancements planned for Geronimo 2.1.4 we should remove it from the fix versions. It appears that the original problem was fixed in 2.1.1.
          Donald Woods made changes -
          Fix Version/s 2.2 [ 12312965 ]
          Fix Version/s 2.1.4 [ 12313380 ]
          Hide
          Geoff Callender added a comment -

          It's useful for more than unit testing - it's essential to be able to inform the client what's wrong with the request. I've added some examples of this to https://issues.apache.org/jira/browse/OPENEJB-782 .

          Show
          Geoff Callender added a comment - It's useful for more than unit testing - it's essential to be able to inform the client what's wrong with the request. I've added some examples of this to https://issues.apache.org/jira/browse/OPENEJB-782 .
          Hide
          Vincent MATHON added a comment -

          I agree that exceptions on the server side should not be thrown to the client side since such exceptions types might not be known by the client. However, for unit testing purpose, it is useful to attach the root cause to the RollBackException. I have modified a few lines in org.apache.geronimo.transaction.manager.TransactionImpl.java to attach the root cause in case of RollBackException and it works for my unit testing purpose (I have not enough background on the java transaction architecture topic to submit a patch for production). It would be great to define a configuration parameter that permits to provide the root cause to the client and keep the current behaviour that does not by default.

          Show
          Vincent MATHON added a comment - I agree that exceptions on the server side should not be thrown to the client side since such exceptions types might not be known by the client. However, for unit testing purpose, it is useful to attach the root cause to the RollBackException. I have modified a few lines in org.apache.geronimo.transaction.manager.TransactionImpl.java to attach the root cause in case of RollBackException and it works for my unit testing purpose (I have not enough background on the java transaction architecture topic to submit a patch for production). It would be great to define a configuration parameter that permits to provide the root cause to the client and keep the current behaviour that does not by default.
          Hide
          Ralf Baumhof added a comment -

          Today if have tested the new Geronimo release 2.1.1 (published on 28.04.2008). The problem is now fixed. If the server gets an error on trying a commit, this error is now thrown to the web bean.

          Exception text:
          javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization: Unable to commit: transaction marked for rollback Root Cause: javax.transaction.TransactionRolledbackException : Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization: Unable to commit: transaction marked for rollback

          Unfortunately there is no proper root cause attached to the exception. So the cause can only be seen in the server console, but can not be reported to the user. It would be very nice if you could change this in a later release.

          Thanks for your help.

          Show
          Ralf Baumhof added a comment - Today if have tested the new Geronimo release 2.1.1 (published on 28.04.2008). The problem is now fixed. If the server gets an error on trying a commit, this error is now thrown to the web bean. Exception text: javax.ejb.EJBTransactionRolledbackException: Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization: Unable to commit: transaction marked for rollback Root Cause: javax.transaction.TransactionRolledbackException : Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization: Unable to commit: transaction marked for rollback Unfortunately there is no proper root cause attached to the exception. So the cause can only be seen in the server console, but can not be reported to the user. It would be very nice if you could change this in a later release. Thanks for your help.
          Hide
          David Jencks added a comment -

          Prospective fix committed to openejb in rev 638225. Can you check that this fixes this problem?

          Show
          David Jencks added a comment - Prospective fix committed to openejb in rev 638225. Can you check that this fixes this problem?
          David Jencks made changes -
          Field Original Value New Value
          Assignee David Jencks [ djencks ]
          Hide
          David Jencks added a comment -

          Looks like EJB 3 core spec 14.3.10 says we should be throwing an EJBException or maybe RemoteException here.

          See https://issues.apache.org/jira/browse/OPENEJB-782.

          Show
          David Jencks added a comment - Looks like EJB 3 core spec 14.3.10 says we should be throwing an EJBException or maybe RemoteException here. See https://issues.apache.org/jira/browse/OPENEJB-782 .
          Hide
          David Jencks added a comment -

          I wasn't suggesting that flush was a solution, just a temporary workaround.

          Preliminary investigation suggests that there may be a problem with org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction. Hopefully we can investigate and fix this shortly. IIRC the spec rules about what to do in this situation are a little hard to understand.

          Show
          David Jencks added a comment - I wasn't suggesting that flush was a solution, just a temporary workaround. Preliminary investigation suggests that there may be a problem with org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction. Hopefully we can investigate and fix this shortly. IIRC the spec rules about what to do in this situation are a little hard to understand.
          Hide
          Ralf Baumhof added a comment -

          Sorry, i was wrong. The setting <property name="openjpa.DataCacheTimeout" value="0" /> does not work. So, if there is no nearby solution for this problem, we must think about stopping the project and first port to an another application container.

          Show
          Ralf Baumhof added a comment - Sorry, i was wrong. The setting <property name="openjpa.DataCacheTimeout" value="0" /> does not work. So, if there is no nearby solution for this problem, we must think about stopping the project and first port to an another application container.
          Hide
          Ralf Baumhof added a comment -

          Of course entityManager.flush() works. But this is not an appropriate solution. We have a big project and we can not rely on the programmers always to write flush after each persist call. What i mean is a configuration setting that always forces the EntityManager to write changes through to databse. I have tried to disable caching but this does not work. Now, i'am currently evaluating: <property name="openjpa.DataCacheTimeout" value="0" />. This seems to work. This means, data in the cache will expire at once. But will there be any serious side effects if we enable this setting???????? I consider this problem as very serious because container transaction managment must be reliable. It's the main point for using an application server.

          Show
          Ralf Baumhof added a comment - Of course entityManager.flush() works. But this is not an appropriate solution. We have a big project and we can not rely on the programmers always to write flush after each persist call. What i mean is a configuration setting that always forces the EntityManager to write changes through to databse. I have tried to disable caching but this does not work. Now, i'am currently evaluating: <property name="openjpa.DataCacheTimeout" value="0" />. This seems to work. This means, data in the cache will expire at once. But will there be any serious side effects if we enable this setting???????? I consider this problem as very serious because container transaction managment must be reliable. It's the main point for using an application server.
          Hide
          David Jencks added a comment -

          Have you tried entityManager.flush()?

          Show
          David Jencks added a comment - Have you tried entityManager.flush()?
          Hide
          Ralf Baumhof added a comment -

          I have just upgraded my geronimo 2.1 with a new openjpa (1.0.2) version. The error is the same. The situation always occurs if you have only one insert on the database. So, the physical insert on database is performed AFTER the stateless session bean is executed (by ejb container on performing the commit with the jta datasource). If i throw an exception by myself it is recognized. Did you try this situation in your environment? The situation does not occur if i have several inserts on dependant objects. In this case OpenJPA writes to database earlier and the exception is thrown during one of the persist calls. The database is a postgresql 8.2 database. Is there a possibility to force OpenJPA always write through to the database on each persist call?? Much thanks in advance!!

          Show
          Ralf Baumhof added a comment - I have just upgraded my geronimo 2.1 with a new openjpa (1.0.2) version. The error is the same. The situation always occurs if you have only one insert on the database. So, the physical insert on database is performed AFTER the stateless session bean is executed (by ejb container on performing the commit with the jta datasource). If i throw an exception by myself it is recognized. Did you try this situation in your environment? The situation does not occur if i have several inserts on dependant objects. In this case OpenJPA writes to database earlier and the exception is thrown during one of the persist calls. The database is a postgresql 8.2 database. Is there a possibility to force OpenJPA always write through to the database on each persist call?? Much thanks in advance!!
          Hide
          Donald Woods added a comment -

          Have you tried one of the 2.1.1-SNAPSHOT or 2.2-SNAPSHOT daily builds from 20080312 or later?
          I upgraded both to use OpenJPA 1.0.2 yesterday, which had some bug fixes in it.....

          Show
          Donald Woods added a comment - Have you tried one of the 2.1.1-SNAPSHOT or 2.2-SNAPSHOT daily builds from 20080312 or later? I upgraded both to use OpenJPA 1.0.2 yesterday, which had some bug fixes in it.....
          Hide
          Ralf Baumhof added a comment -

          More over. Two nearly identical situations. In both cases the insert fails because of invalid foreign keys. In both cases the persist method first does not throw an exception. But in the first case (the working case) there are some additional inserts and updates which may force that the data is written to database a little bit earlier. In this case the exception is visible and catchable at the level of the service fassace. In the second case (the case described above) it is not visible - neither at the service fassade, nor at the JSF bean.

          This works (the exception can be caught at the service fassade):
          javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :javax.ejb.EJBTransactionRolledbackException : The transaction has been marked rollback only because the bean encountered a non-application exception :org.apache.openjpa.persistence.PersistenceException : The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:348)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:323)
          at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
          at $Proxy97.anlegenSchuldnerEintrag(Unknown Source)
          at de.nrw.hagen.ggrz.vesuv.schuldner.services.SchuldnerServiceManagerImpl.AnlegenSchuldnerJuristischePersonZSV(SchuldnerServiceManagerImpl.java:49)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129)
          at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
          at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
          at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
          at $Proxy96.AnlegenSchuldnerJuristischePersonZSV(Unknown Source)
          at de.nrw.hagen.ggrz.vesuv.schuldner.controler.SRegControlerBean.anlegenJPerson(SRegControlerBean.java:115)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
          at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
          at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
          at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75)
          at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)
          at javax.faces.component.UICommand.broadcast(UICommand.java:121)
          at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292)
          at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209)
          at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
          at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
          at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
          at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
          at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
          at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396)
          at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
          at java.lang.Thread.run(Thread.java:595)
          Caused by: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :org.apache.openjpa.persistence.PersistenceException : The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:348)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:323)
          at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
          at $Proxy101.anlegenPerson(Unknown Source)
          at de.nrw.hagen.ggrz.vesuv.schuldner.SchuldnerEintragManagerImpl.anlegenSchuldnerEintrag(SchuldnerEintragManagerImpl.java:37)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129)
          at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
          at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
          ... 53 more
          Caused by: <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
          at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107)
          at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
          at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
          at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1623)
          at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:956)
          at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:790)
          at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
          at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:765)
          at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517)
          at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:238)
          at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:277)
          at de.nrw.hagen.ggrz.db.BasisDAO.nextId(BasisDAO.java:37)
          at de.nrw.hagen.ggrz.bv.person.db.PersonDAOImpl.anlegenJuristischePerson(PersonDAOImpl.java:129)
          at de.nrw.hagen.ggrz.bv.person.db.PersonDAOImpl.anlegenPerson(PersonDAOImpl.java:78)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146)
          at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129)
          at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
          at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
          ... 69 more
          Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »person« verletzt Fremdschlüssel-Constraint »person_historie_fk_fkey«
          Detail: Schlüssel (historie_fk)=(27) ist nicht in Tabelle »historie« vorhanden.

          {prepstmnt 19422193 INSERT INTO vesuv.person (id, bemerkung, historie_fk, name, persontyp, phonetischer_diskriptor_name, vermoegensverzeichnis_fk, vorgaenger_version_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 7, (null) null, (long) 27, (String) , (int) 0, (String) , (long) 0, (null) null]} [code=0, state=23503]
          FailedObject: de.nrw.hagen.ggrz.bv.person.db.PersonPAO@124dc48
          at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
          at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
          ... 95 more
          Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »person« verletzt Fremdschlüssel-Constraint »person_historie_fk_fkey«
          Detail: Schlüssel (historie_fk)=(27) ist nicht in Tabelle »historie« vorhanden. {prepstmnt 19422193 INSERT INTO vesuv.person (id, bemerkung, historie_fk, name, persontyp, phonetischer_diskriptor_name, vermoegensverzeichnis_fk, vorgaenger_version_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 7, (null) null, (long) 27, (String) , (int) 0, (String) , (long) 0, (null) null]}

          [code=0, state=23503]
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97)
          ... 102 more

          This does not work, (there is no exception that can be caught at the service fasseade or the JSF bean):

          [de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerDAOImpl] >> $$ BenutzerDAO::generated id = 34
          13:52:40,109 WARN [Transaction] Unexpected exception from beforeCompletion; transaction will roll back
          <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
          at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107)
          at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
          at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
          at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
          at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
          at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245)
          at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141)
          at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
          at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
          at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
          at $Proxy92.anlegenBenutzer(Unknown Source)
          at de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler.anlegenBenutzer(BenutzerControler.java:44)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
          at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
          at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
          at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75)
          at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)
          at javax.faces.component.UICommand.broadcast(UICommand.java:121)
          at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292)
          at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209)
          at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
          at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
          at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
          at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
          at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
          at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396)
          at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
          at java.lang.Thread.run(Thread.java:595)
          Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey«
          Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden.

          {prepstmnt 31078533 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 34, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

          [code=0, state=23503]
          FailedObject: de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerPAO@1f2ccf0
          at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
          at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
          ... 53 more
          Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey«
          Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden.

          {prepstmnt 31078533 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 34, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

          [code=0, state=23503]
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97)
          ... 60 more
          [de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler] >> $$Success from neuer Benutzer = true

          Show
          Ralf Baumhof added a comment - More over. Two nearly identical situations. In both cases the insert fails because of invalid foreign keys. In both cases the persist method first does not throw an exception. But in the first case (the working case) there are some additional inserts and updates which may force that the data is written to database a little bit earlier. In this case the exception is visible and catchable at the level of the service fassace. In the second case (the case described above) it is not visible - neither at the service fassade, nor at the JSF bean. This works (the exception can be caught at the service fassade): javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :javax.ejb.EJBTransactionRolledbackException : The transaction has been marked rollback only because the bean encountered a non-application exception :org.apache.openjpa.persistence.PersistenceException : The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:348) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:323) at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) at $Proxy97.anlegenSchuldnerEintrag(Unknown Source) at de.nrw.hagen.ggrz.vesuv.schuldner.services.SchuldnerServiceManagerImpl.AnlegenSchuldnerJuristischePersonZSV(SchuldnerServiceManagerImpl.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321) at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) at $Proxy96.AnlegenSchuldnerJuristischePersonZSV(Unknown Source) at de.nrw.hagen.ggrz.vesuv.schuldner.controler.SRegControlerBean.anlegenJPerson(SRegControlerBean.java:115) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54) at javax.faces.component.UICommand.broadcast(UICommand.java:121) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292) at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117) at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Caused by: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :org.apache.openjpa.persistence.PersistenceException : The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:348) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:323) at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) at $Proxy101.anlegenPerson(Unknown Source) at de.nrw.hagen.ggrz.vesuv.schuldner.SchuldnerEintragManagerImpl.anlegenSchuldnerEintrag(SchuldnerEintragManagerImpl.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321) ... 53 more Caused by: <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1623) at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:956) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:790) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769) at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:765) at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517) at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:238) at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:277) at de.nrw.hagen.ggrz.db.BasisDAO.nextId(BasisDAO.java:37) at de.nrw.hagen.ggrz.bv.person.db.PersonDAOImpl.anlegenJuristischePerson(PersonDAOImpl.java:129) at de.nrw.hagen.ggrz.bv.person.db.PersonDAOImpl.anlegenPerson(PersonDAOImpl.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321) ... 69 more Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »person« verletzt Fremdschlüssel-Constraint »person_historie_fk_fkey« Detail: Schlüssel (historie_fk)=(27) ist nicht in Tabelle »historie« vorhanden. {prepstmnt 19422193 INSERT INTO vesuv.person (id, bemerkung, historie_fk, name, persontyp, phonetischer_diskriptor_name, vermoegensverzeichnis_fk, vorgaenger_version_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 7, (null) null, (long) 27, (String) , (int) 0, (String) , (long) 0, (null) null]} [code=0, state=23503] FailedObject: de.nrw.hagen.ggrz.bv.person.db.PersonPAO@124dc48 at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130) ... 95 more Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »person« verletzt Fremdschlüssel-Constraint »person_historie_fk_fkey« Detail: Schlüssel (historie_fk)=(27) ist nicht in Tabelle »historie« vorhanden. {prepstmnt 19422193 INSERT INTO vesuv.person (id, bemerkung, historie_fk, name, persontyp, phonetischer_diskriptor_name, vermoegensverzeichnis_fk, vorgaenger_version_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 7, (null) null, (long) 27, (String) , (int) 0, (String) , (long) 0, (null) null]} [code=0, state=23503] at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97) ... 102 more This does not work, (there is no exception that can be caught at the service fasseade or the JSF bean): [de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerDAOImpl] >> $$ BenutzerDAO::generated id = 34 13:52:40,109 WARN [Transaction] Unexpected exception from beforeCompletion; transaction will roll back <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245) at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141) at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321) at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) at $Proxy92.anlegenBenutzer(Unknown Source) at de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler.anlegenBenutzer(BenutzerControler.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54) at javax.faces.component.UICommand.broadcast(UICommand.java:121) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292) at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117) at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey« Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden. {prepstmnt 31078533 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 34, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]} [code=0, state=23503] FailedObject: de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerPAO@1f2ccf0 at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130) ... 53 more Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey« Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden. {prepstmnt 31078533 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 34, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]} [code=0, state=23503] at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97) ... 60 more [de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler] >> $$Success from neuer Benutzer = true
          Hide
          Ralf Baumhof added a comment -

          The same proble occurs, if i correct the annotations, but have an invalid foreign key in one column. The persist method is successfully, and later the commit fails. The call stack, the first line is from the DAO class which reports that the persist method was ok, the last line is from the JSF bean.

          [de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerDAOImpl] >> $$ BenutzerDAO::generated id = 32
          12:36:12,337 WARN [Transaction] Unexpected exception from beforeCompletion; transaction will roll back
          <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred.
          at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107)
          at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954)
          at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852)
          at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499)
          at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
          at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
          at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245)
          at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141)
          at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
          at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
          at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
          at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
          at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321)
          at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
          at $Proxy78.anlegenBenutzer(Unknown Source)
          at de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler.anlegenBenutzer(BenutzerControler.java:44)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at org.apache.el.parser.AstValue.invoke(AstValue.java:131)
          at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
          at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
          at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75)
          at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)
          at javax.faces.component.UICommand.broadcast(UICommand.java:121)
          at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292)
          at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209)
          at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
          at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
          at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
          at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
          at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
          at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
          at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396)
          at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
          at java.lang.Thread.run(Thread.java:595)
          Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey«
          Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden.

          {prepstmnt 4655832 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 32, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

          [code=0, state=23503]
          FailedObject: de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerPAO@5e3cad
          at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
          at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
          at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
          at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
          at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
          ... 53 more
          Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey«
          Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden.

          {prepstmnt 4655832 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 32, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]}

          [code=0, state=23503]
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
          at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
          at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363)
          at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97)
          ... 60 more
          [de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler] >> $$Success from neuer Benutzer = true

          Show
          Ralf Baumhof added a comment - The same proble occurs, if i correct the annotations, but have an invalid foreign key in one column. The persist method is successfully, and later the commit fails. The call stack, the first line is from the DAO class which reports that the persist method was ok, the last line is from the JSF bean. [de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerDAOImpl] >> $$ BenutzerDAO::generated id = 32 12:36:12,337 WARN [Transaction] Unexpected exception from beforeCompletion; transaction will roll back <openjpa-1.0.1-r420667:592145 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2107) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1954) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1852) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1770) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:245) at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:141) at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:321) at org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) at $Proxy78.anlegenBenutzer(Unknown Source) at de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler.anlegenBenutzer(BenutzerControler.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.el.parser.AstValue.invoke(AstValue.java:131) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54) at javax.faces.component.UICommand.broadcast(UICommand.java:121) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:292) at javax.faces.component.UIViewRoot.process(UIViewRoot.java:209) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117) at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:396) at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:595) Caused by: <openjpa-1.0.1-r420667:592145 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey« Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden. {prepstmnt 4655832 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 32, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]} [code=0, state=23503] FailedObject: de.nrw.hagen.ggrz.bv.benutzer.db.BenutzerPAO@5e3cad at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3938) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:108) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130) ... 53 more Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: FEHLER: Einfügen oder Aktualisieren in Tabelle »benutzer« verletzt Fremdschlüssel-Constraint »benutzer_verknuepft_mit_fk_fkey« Detail: Schlüssel (verknuepft_mit_fk)=(1) ist nicht in Tabelle »person« vorhanden. {prepstmnt 4655832 INSERT INTO vesuv.benutzer (id, anzahl_anmeldeversuche, anzahl_anmeldungen, benutzer_kennung, datum_letzte_passwort_aenderung, email_anlage, historie_fk, ist_gesperrt, ist_gesperrt_seit, kostenbefreiung_online_auskunft, letzte_benutzer_gruppe_fk, letzter_anmeldeversuch, passwort_fehlversuche_zaehler, passwort_historie, passwort_sha256hash, passwort_wechsel_erst_anmeldung, person_info_fk, sperrgrund, verknuepft_mit_fk, zuletzt_angemeldet_am) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [params=(long) 32, (long) 0, (long) 0, (String) a, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (boolean) false, (Timestamp) 1970-01-01 01:00:00.0, (boolean) false, (long) 0, (Timestamp) 3908-03-21 10:22:00.0, (long) 0, (String) nixx, (String) b, (boolean) false, (long) 0, (String) keiner, (long) 1, (Timestamp) 3908-03-21 10:22:00.0]} [code=0, state=23503] at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:858) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1363) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:97) ... 60 more [de.nrw.hagen.ggrz.benutzer.controler.BenutzerControler] >> $$Success from neuer Benutzer = true
          Ralf Baumhof created issue -

            People

            • Assignee:
              David Jencks
              Reporter:
              Ralf Baumhof
            • Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 5m
                5m
                Remaining:
                Remaining Estimate - 5m
                5m
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Development