Return-Path: X-Original-To: apmail-db-derby-dev-archive@www.apache.org Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 05A0A9D92 for ; Thu, 29 Mar 2012 23:33:56 +0000 (UTC) Received: (qmail 64719 invoked by uid 500); 29 Mar 2012 23:33:55 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 64697 invoked by uid 500); 29 Mar 2012 23:33:55 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 64673 invoked by uid 99); 29 Mar 2012 23:33:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2012 23:33:55 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Mar 2012 23:33:53 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 58D4934DDE1 for ; Thu, 29 Mar 2012 23:33:33 +0000 (UTC) Date: Thu, 29 Mar 2012 23:33:33 +0000 (UTC) From: "Mamta A. Satoor (Commented) (JIRA)" To: derby-dev@db.apache.org Message-ID: <1924756400.35783.1333064013376.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1671410459.29048.1332045952206.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (DERBY-5663) Getting NPE when trying to set derby.language.logStatementText property to true inside a junit suite. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-5663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241927#comment-13241927 ] Mamta A. Satoor commented on DERBY-5663: ---------------------------------------- Let me start first by just going over the large data suite at the top level. tests.largedata._Suite has following public static Test suite() { TestSuite suite = new TestSuite("largedata suite"); // DERBY-5624, currently this runs out of file descriptors on unix // systems with 1024 limit per user. Setting to run only on windows // until solution for unix is found. if (isWindowsPlatform()) suite.addTest(Derby5624Test.suite()); suite.addTest(LobLimitsLiteTest.suite()); suite.addTest(LobLimitsTest.suite()); suite.addTest(LobLimitsClientTest.suite()); return suite; } For the sake of this jira, we can ignore Derby5624Test.suite since this suite has test fixture of it's own. The next three suites are 1)LobLimitsLiteTest 2)LobLimitsTest and 3)LobLimitsClientTest All of the three suites above end up calling tests.LobLimitsTest suite. LobLimitsLiteTest specifically calls LobLimitsTest suite twice(once for embedded and once for network server) as shown below The suite() method in LobLimitsLiteTest is as follows public static Test suite() { Test test = LobLimitsTest.baseSuite(_1MB, _100K); TestSuite suite = new TestSuite("LobLimitsLiteTest"); suite.addTest(test); suite.addTest(TestConfiguration.clientServerDecorator(test)); return suite; } As we can see, we create only one instance of LobLimitesTest suite and run that once in embedded and next in client server mode. Since we are using the same instance of LobLimitesTest suite twice, in turn we are using the same SystemPropertyTestSetup instance twice. As for the next 2 suites in tests.largedata._Suite(namely LobLimitsTest and LobLimitsClientTest), they create their own LobLimitsTest suite and hence there is no reuse of the same instance of SystemPropertyTestSetup. I verified this by putting println in SystemPropertyTestSetup's constructor and found that the println gets printed only 3 times(rather than 4 times which is how many times the LobLimitesTest suite is invoked). System.out.println("in constructor " + hashCode()); I also put a println in SystemPropertyTestSetup.setUP() and see that it got called 4 times. But 2 of those 4 times printed the same hashCode() indicating we are dealing with the same instance of SystemPropertyTestSetup. System.out.println("in setUp " + hashCode()); I modified LobLimitsLiteTest.suite() just for testing purposes to create a new suite LobLimitsLiteTest for client server run and after that change, I see the SystemPropertyTestSetup's constructor getting called 4 times. With this temporary change in my codeline with each lob limits test using it's own instance, it doesn't matter if we null out oldValue and newValues in SystemPropertyTestSetup.tearDown() method since there is no resue of the same instance of SystemPropertyTestSetup public static Test suite() { Test test = LobLimitsTest.baseSuite(_1MB, _100K); TestSuite suite = new TestSuite("LobLimitsLiteTest"); suite.addTest(test); Test test1 = LobLimitsTest.baseSuite(_1MB, _100K); suite.addTest(TestConfiguration.clientServerDecorator(test1)); return suite; } > Getting NPE when trying to set derby.language.logStatementText property to true inside a junit suite. > ----------------------------------------------------------------------------------------------------- > > Key: DERBY-5663 > URL: https://issues.apache.org/jira/browse/DERBY-5663 > Project: Derby > Issue Type: Bug > Components: Test > Affects Versions: 10.9.0.0 > Reporter: Mamta A. Satoor > Assignee: Mamta A. Satoor > Labels: derby_triage10_9 > Attachments: DERBY5663_patch1.txt, DERBY5663_patch2.txt > > > Derby has a large data suite which runs LobLimitsTest with small data size, large data size and with embedded and network server configurations. The large data suite is run as follows > time java -Dderby.tests.trace=true -Dderby.infolog.append=true junit.textui.TestRunner org.apache.derbyTesting.functionTests.tests.largedata._Suite > runall.out 2>&1 > I made a simple change to the suite to log statement text as shown in the attached patch(DERBY5663_patch1.txt). This causes the large data suite to run into NPE (NPE can be seen in runall.out) as shown below. Not sure what I am doing wrong while trying to set the property, which results in NPE. > . > (emb)largedata.Derby5624Test.testDERBY_5624 used 411473 ms . > (emb)largedata.LobLimitsTest.test_01_Blob used 1555 ms . > (emb)largedata.LobLimitsTest.test_02_BlobNegative used 42 ms . > (emb)largedata.LobLimitsTest.test_03_Clob1 used 1436 ms . > (emb)largedata.LobLimitsTest.test_04_Clob2 used 1707 ms . > (emb)largedata.LobLimitsTest.test_05_ClobNegative used 967 ms E. > (emb)largedata.LobLimitsTest.test_01_Blob used 2929139 ms . > (emb)largedata.LobLimitsTest.test_02_BlobNegative used 154 ms . > (emb)largedata.LobLimitsTest.test_03_Clob1 used 2854121 ms . > (emb)largedata.LobLimitsTest.test_04_Clob2 used 656137 ms . > (emb)largedata.LobLimitsTest.test_05_ClobNegative used 331288 ms EF > Time: 7,589.168 > There were 2 errors: > 1) LobLimitsTestjava.lang.NullPointerException > at org.apache.derbyTesting.junit.SystemPropertyTestSetup.setProperties(SystemPropertyTestSetup.java:116) > at org.apache.derbyTesting.junit.SystemPropertyTestSetup.setUp(SystemPropertyTestSetup.java:87) > at junit.extensions.TestSetup$1.protect(TestSetup.java:18) > at junit.extensions.TestSetup.run(TestSetup.java:23) > 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 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) > 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) > 2) LobLimitsTestjava.sql.SQLNonTransientConnectionException: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: org.apache.derby.jdbc.EmbeddedDriver is not registered with the JDBC driver manager > at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71) > at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:364) > at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:166) > at java.sql.DriverManager.getConnection(DriverManager.java:322) > at java.sql.DriverManager.getConnection(DriverManager.java:297) > at org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(DriverManagerConnector.java:100) > at org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(DriverManagerConnector.java:67) > at org.apache.derbyTesting.junit.DriverManagerConnector.openConnection(DriverManagerConnector.java:43) > at org.apache.derbyTesting.junit.TestConfiguration.openDefaultConnection(TestConfiguration.java:1633) > at org.apache.derbyTesting.junit.BaseJDBCTestSetup.getConnection(BaseJDBCTestSetup.java:72) > at org.apache.derbyTesting.junit.CleanDatabaseTestSetup.setUp(CleanDatabaseTestSetup.java:104) > at junit.extensions.TestSetup$1.protect(TestSetup.java:18) > at junit.extensions.TestSetup.run(TestSetup.java:23) > at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57) > 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 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 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) > 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 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) > 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) > Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: org.apache.derby.jdbc.EmbeddedDriver is not registered with the JDBC driver manager > at org.apache.derby.client.am.Connection.completeSqlca(Connection.java:2125) > at org.apache.derby.client.net.NetConnectionReply.parseRdbAccessFailed(NetConnectionReply.java:538) > at org.apache.derby.client.net.NetConnectionReply.parseAccessRdbError(NetConnectionReply.java:431) > at org.apache.derby.client.net.NetConnectionReply.parseACCRDBreply(NetConnectionReply.java:294) > at org.apache.derby.client.net.NetConnectionReply.readAccessDatabase(NetConnectionReply.java:121) > at org.apache.derby.client.net.NetConnection.readSecurityCheckAndAccessRdb(NetConnection.java:826) > at org.apache.derby.client.net.NetConnection.flowSecurityCheckAndAccessRdb(NetConnection.java:762) > at org.apache.derby.client.net.NetConnection.flowUSRIDPWDconnect(NetConnection.java:591) > at org.apache.derby.client.net.NetConnection.flowConnect(NetConnection.java:406) > at org.apache.derby.client.net.NetConnection.(NetConnection.java:220) > at org.apache.derby.client.net.NetConnection40.(NetConnection40.java:74) > at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(ClientJDBCObjectFactoryImpl40.java:269) > at org.apache.derby.jdbc.ClientDriver.connect(ClientDriver.java:157) > ... 43 more > There was 1 failure: > 1) LobLimitsTestjunit.framework.ComparisonFailure: Engine shutdown expected: but was:<08001> > at org.apache.derbyTesting.junit.BaseJDBCTestCase.assertSQLState(BaseJDBCTestCase.java:790) > at org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1751) > at org.apache.derbyTesting.junit.SystemPropertyTestSetup.tearDown(SystemPropertyTestSetup.java:108) > at junit.extensions.TestSetup$1.protect(TestSetup.java:20) > at junit.extensions.TestSetup.run(TestSetup.java:23) > 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 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) > 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 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) > 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) > Caused by: java.sql.SQLException: No suitable driver > at java.sql.DriverManager.getConnection(DriverManager.java:330) > at java.sql.DriverManager.getConnection(DriverManager.java:297) > at org.apache.derbyTesting.junit.DriverManagerConnector.getConnectionByAttributes(DriverManagerConnector.java:163) > at org.apache.derbyTesting.junit.DriverManagerConnector.shutEngine(DriverManagerConnector.java:140) > at org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1748) > ... 31 more > FAILURES!!! > Tests run: 11, Failures: 1, Errors: 2 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira