Details
-
Bug
-
Resolution: Done
-
Major
-
5.0.4
-
None
Description
1) Start a transaction;
2) Obtain a connection via the TransactionalDriver
3) End transaction
4) start another transaction
5) Call connection.isClosed()
this will produce the following exception because the transactional driver thinks the connection is still associated:
java.lang.RuntimeException: java.sql.SQLException: ARJUNA017003: Checking transaction and found that this connection is already associated with a different transaction! Obtain a new connection for this transaction. at ceylon.modules.bootstrap.CeylonRunTool.run(CeylonRunTool.java:228) at com.redhat.ceylon.common.tools.CeylonTool.run(CeylonTool.java:368) at com.redhat.ceylon.common.tools.CeylonTool.execute(CeylonTool.java:305) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.redhat.ceylon.launcher.Launcher.runInJava7Checked(Launcher.java:113) at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:40) at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:33) at com.redhat.ceylon.launcher.Launcher.main(Launcher.java:26) Caused by: java.sql.SQLException: ARJUNA017003: Checking transaction and found that this connection is already associated with a different transaction! Obtain a new connection for this transaction. at com.arjuna.ats.internal.jdbc.ConnectionImple.checkTransaction(ConnectionImple.java:1078) at com.arjuna.ats.internal.jdbc.ConnectionImple.isClosed(ConnectionImple.java:417) at ceylon.dbc.ConnectionStatus.connection(ConnectionStatus.ceylon:22) at ceylon.dbc.Sql.prepareStatement$priv$(Sql.ceylon:89) at ceylon.dbc.Sql.access$100(Sql.ceylon:701) at ceylon.dbc.Sql$Update.execute$canonical$(Sql.ceylon:346) at ceylon.dbc.Sql$Update.execute(Sql.ceylon:343) at example.ceylon.transaction.tm.runTx_.runTx(transaction.ceylon:199) at example.ceylon.transaction.tm.run_.run(transaction.ceylon:225) at example.ceylon.transaction.tm.run_.main(transaction.ceylon) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at ceylon.modules.api.runtime.SecurityActions.invokeRunInternal(SecurityActions.java:58) at ceylon.modules.api.runtime.SecurityActions.invokeRun(SecurityActions.java:48) at ceylon.modules.api.runtime.AbstractRuntime.invokeRun(AbstractRuntime.java:101) at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:167) at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:151) at ceylon.modules.Main.execute(Main.java:69) at ceylon.modules.Main.main(Main.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jboss.modules.Module.run(Module.java:312) at org.jboss.modules.Main.main(Main.java:460) at ceylon.modules.bootstrap.CeylonRunTool.run(CeylonRunTool.java:208) ... 10 more