[
https://issues.apache.org/jira/browse/DERBY-4310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12735304#action_12735304
]
Kathey Marsden commented on DERBY-4310:
---------------------------------------
I agree that probably the copyFiles problem is related to your client. Check to
see if the file is in your source tree. Even if it is do svn update -force on
that one file. Check to see it is in classes and lastly check the
derbyTesting.jar with jar tvf.
The actual implementation of isClosed() is in BrokeredStatement40.java. This is
because it is a new method with JDBC 4.0. With JDK 1.5 and lower (JDBC 3.0) you
will see the not implemented exception, but for 1.6 it is implemented.
isValid() is actually not a Statement method but rather a method on
Connection. I think there are other methods besides isClosed() that in a
regular connection won't check if the dependencies if the table is dropped. A
couple I tried were getFetchSize() and setFetchSize(). If we fix this for
isClosed() I think we should fix it for the other calls that are impacted as
well.
Doing so would require some more significant code reorganization where we first
write tests to determine which calls check dependencies and then decide on a
strategy to make sure the various calls get the possibly reprepared statement
or the original one as appropriate.
Also we will need to check that the state gets transferred properly if calls
like setFetchSize() are made on the original statement. The more I think about
it, I think this is a bigger project than you have time for in the next couple
of weeks, so probably best to just get this issue wrapped up for close() and
file a new bug for the other calls.
> jdbcapi.XATest passes but shows Table/View 'APP.FOO' does not exist. under
> logs/serverConsoleOutput.log
> -------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4310
> URL: https://issues.apache.org/jira/browse/DERBY-4310
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.6.0.0
> Reporter: Tiago R. Espinha
> Assignee: Tiago R. Espinha
> Attachments: console.out.txt, DERBY-4310.diff, derby.log.tar.gz,
> outall.txt, ReproDerby4310.java, ReproDerby4310.java, ReproDerby4310.java,
> ReproEmbeddedDerby4310.java, Tests.zip, utilXid.java, XATestLog.tar.gz
>
>
> The XATest is showing the following on the log:
> 2009-07-16 00:15:42.838 GMT : Apache Derby Network Server - 10.6.0.0 alpha -
> (794457M) started and ready to accept connections on port 9920
> 2009-07-16 00:15:44.394 GMT : Unexpected exception:
> Table/View 'APP.FOO' does not exist.
> Here is the full stack trace from derby.log. The error comes closing a
> prepared statement on a brokered connection if the table referenced by the
> statement has been dropped. This looks like an embedded bug causing network
> server shutdown to fail. Also if this test is enabled in a suite DERBY-4155,
> the next time network server is started the tests will hang with
> java.net.BindException: Address already in use: NET_Bind in the derby.log
> 2009-07-16 17:05:45.062 GMT
> Thread[derby.NetworkServerStarter,5,derby.daemons] (XID = 497), (SESSIONID =
> 53), (DATABASE = wombat), (DRDAID = {7}), Failed Statement is: SELECT * FROM
> APP.FOO
> ERROR 42X05: Table/View 'APP.FOO' does not exist.
> at
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
> at
> org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(FromBaseTable.java:2463)
> at
> org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(FromBaseTable.java:2183)
> at
> org.apache.derby.impl.sql.compile.FromList.bindTables(FromList.java:310)
> at
> org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(SelectNode.java:390)
> at
> org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(DMLStatementNode.java:199)
> at
> org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:137)
> at
> org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:245)
> at
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:316)
> at
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
> at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:822)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
> at
> org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:105)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1542)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1423)
> at
> org.apache.derby.iapi.jdbc.BrokeredPreparedStatement30.createDuplicateStatement(BrokeredPreparedStatement30.java:56)
> at
> org.apache.derby.jdbc.XAStatementControl.getRealPreparedStatement(XAStatementControl.java:143)
> at
> org.apache.derby.iapi.jdbc.BrokeredPreparedStatement.getPreparedStatement(BrokeredPreparedStatement.java:526)
> at
> org.apache.derby.iapi.jdbc.BrokeredPreparedStatement.getStatement(BrokeredPreparedStatement.java:533)
> at
> org.apache.derby.iapi.jdbc.BrokeredStatement.close(BrokeredStatement.java:130)
> at
> org.apache.derby.impl.drda.DRDAStatement.close(DRDAStatement.java:1027)
> at org.apache.derby.impl.drda.Database.close(Database.java:352)
> at org.apache.derby.impl.drda.Session.close(Session.java:115)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(NetworkServerControlImpl.java:833)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> at java.lang.reflect.Method.invoke(Method.java:599)
> at
> org.apache.derby.iapi.jdbc.DRDAServerStarter.run(DRDAServerStarter.java:236)
> at java.lang.Thread.run(Thread.java:735)
> Cleanup action completed
> 2009-07-16 17:05:45.078 GMT : Unexpected exception:
> Table/View 'APP.FOO' does not exist.
> An exception was thrown during network server startup.
> DRDA_UnexpectedException.S:Unexpected exception:
> Table/View 'APP.FOO' does not exist.
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> at java.lang.reflect.Method.invoke(Method.java:599)
> at
> org.apache.derby.iapi.jdbc.DRDAServerStarter.run(DRDAServerStarter.java:236)
> at java.lang.Thread.run(Thread.java:735)
> Caused by: java.lang.Exception: DRDA_UnexpectedException.S:Unexpected
> exception:
> Table/View 'APP.FOO' does not exist.
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(NetworkServerControlImpl.java:3216)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(NetworkServerControlImpl.java:1885)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(NetworkServerControlImpl.java:835)
> ... 6 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.