You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kathey Marsden (JIRA)" <ji...@apache.org> on 2009/10/01 01:09:23 UTC

[jira] Updated: (DERBY-4149) test failure in jdbcapi.InternationalConnectSimpleDSTest fixture testSimpleDSConnect on IBM iseries - Database '?' not found.

     [ https://issues.apache.org/jira/browse/DERBY-4149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kathey Marsden updated DERBY-4149:
----------------------------------

    Attachment: ReproDerby4149.java
                RemoveDir.java

The attached program RemveDir.java can be used to remove the 
problem directories.  You cd to the test directory and run
java RemoveDir <dirtoremove>, e.g java RemoveDir system.  
The directory system and all its contents will  be removed.  
I tried this only with jdk16. Your program did not remove 
directory entries, only files. I did not see it hang but it did not remove
the offending directory.

I am also attaching ReproDerby4149 which shows the problem connecting to 
an international database on iseries.  The program fails creating the 
database with:
   conn = DriverManager.getConnection("jdbc:derby:" + dbDir + ";create=true");
where dbDir is "test/\u4e10";

The connect fails with Database not found but does actually create a the
directory.  This is the exception:


java.sql.SQLException: Database 'test/?' not found.
	at java.lang.Throwable.<init>(Throwable.java:218)
	at java.sql.SQLException.<init>(SQLException.java:218)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
	at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:207)
	at ReproDerby4149.main(ReproDerby4149.java:13)
Caused by: java.sql.SQLException: Database 'test/?' not found.
	at java.lang.Throwable.<init>(Throwable.java:196)
	at java.sql.SQLException.<init>(SQLException.java:52)
	at org.apache.derby.impl.jdbc.EmbedSQLException.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
	... 15 more
============= begin nested exception, level (1) ===========
java.sql.SQLException: Database 'test/?' not found.
	at java.lang.Throwable.<init>(Throwable.java:196)
	at java.sql.SQLException.<init>(SQLException.java:52)
	at org.apache.derby.impl.jdbc.EmbedSQLException.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
	at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
	at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:207)
	at ReproDerby4149.main(ReproDerby4149.java:13)
============= end nested exception, level (1) ===========
Cleanup action completed

2009-09-30 16:20:50.841 GMT:
Shutting down instance a816c00e-0124-0bc0-d16d-00000010a8cb
----------------------------------------------------------------


I suspect a JVM bug here and am trying to narrow this down 
to a java only repro.

In the test there is a teardown method that tries to remove the 
directory but the problem is that it first tries to shutdown the 
database which fails with the exception above.  I suggest we 
change the test to shutdown the engine instead of just the 
database so the teardown can complete and clean up the 
directory properly.  I will submit a patch for that shortly.

> test failure in jdbcapi.InternationalConnectSimpleDSTest fixture  testSimpleDSConnect on IBM iseries - Database '?' not found.
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4149
>                 URL: https://issues.apache.org/jira/browse/DERBY-4149
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>         Environment: IBM iseries, OS: AS/400; OS version: !V5R4M0, jvm: IBM 1.5 (build 1.5.0_13-b05)
>            Reporter: Myrna van Lunteren
>         Attachments: removechindb.java, RemoveDir.java, ReproDerby4149.java
>
>
> This is the test failure's stack trace:
>  testSimpleDSConnect(org.apache.derbyTesting.functionTests.tests.jdbcapi.InternationalConnectSimpleDSTest)java.sql.SQLException: Database '?' not found.
> 	at java.lang.Throwable.<init>(Throwable.java:196)
> 	at java.lang.Exception.<init>(Exception.java:41)
> 	at java.sql.SQLException.<init>(SQLException.java:40)
> 	at org.apache.derby.impl.jdbc.EmbedSQLException.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleDBNotFound(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
> 	at org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown Source)
> 	at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
> 	at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(Unknown Source)
> 	at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(Unknown Source)
> 	at org.apache.derbyTesting.functionTests.tests.jdbcapi.InternationalConnectSimpleDSTest.testSimpleDSConnect(InternationalConnectSimpleDSTest.java:61)
> 	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:84)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
> 	at junit.extensions.TestSetup.run(TestSetup.java:23)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.