[ 
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.

Reply via email to