[
https://issues.apache.org/jira/browse/DERBY-5158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dag H. Wanvik updated DERBY-5158:
---------------------------------
Attachment: DERBY-5158b.stat
DERBY-5158b.diff
Uploading a new version of the patch, which improves the test a bit: we now
make sure to do some work before closing down the database, since otherwise the
client short circuits the commit (if it knows nothing happened yet on this
connection). Rollback does not do this, cf. DERBY-4653.(I did not notice this
optimization in the first version, but saw it when instrumenting it for
verification.)
I did not move the test into ShutdownDatabaseTest, because that test does not
yet run with client/server due to DERBY-2477. Linked this issue to that also.
> Incomprehensible error message on client if attempting rollback after
> database has been shut down.
> --------------------------------------------------------------------------------------------------
>
> Key: DERBY-5158
> URL: https://issues.apache.org/jira/browse/DERBY-5158
> Project: Derby
> Issue Type: Bug
> Reporter: Dag H. Wanvik
> Assignee: Dag H. Wanvik
> Priority: Minor
> Attachments: DERBY-5158a.diff, DERBY-5158a.stat, DERBY-5158b.diff,
> DERBY-5158b.stat, Derby5158Repro.java
>
>
> Cf the attached repro: when performing the rollback after the database has
> been shutdown, we see this error:
> There was 1 error:
> 1)
> testShutdown(org.apache.derbyTesting.functionTests.tests.store.Foo)java.sql.SQLNonTransientConnectionException:
> Network protocol exception: actual code point, 4,692, does not match
> expected code point, 9,224. The connection has been terminated.
> at
> org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71)
> at
> org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:358)
> at org.apache.derby.client.am.Connection.rollback(Connection.java:659)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.rollback(BaseJDBCTestCase.java:387)
> at
> org.apache.derbyTesting.functionTests.tests.store.Foo.testShutdown(Foo.java:100)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:112)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> Caused by: org.apache.derby.client.am.DisconnectException: Network protocol
> exception: actual code point, 4,692, does not match expected code point,
> 9,224. The connection has been terminated.
> at
> org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Reply.java:1075)
> at
> org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(NetConnectionReply.java:2572)
> at
> org.apache.derby.client.net.NetConnectionReply.parseRDBRLLBCKreply(NetConnectionReply.java:219)
> at
> org.apache.derby.client.net.NetConnectionReply.readLocalRollback(NetConnectionReply.java:141)
> at
> org.apache.derby.client.net.ConnectionReply.readLocalRollback(ConnectionReply.java:48)
> at
> org.apache.derby.client.net.NetConnection.readLocalRollback_(NetConnection.java:1515)
> at
> org.apache.derby.client.am.Connection.readRollback(Connection.java:707)
> at
> org.apache.derby.client.am.Connection.flowRollback(Connection.java:690)
> at org.apache.derby.client.am.Connection.rollback(Connection.java:655)
> ... 29 more
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira