[
https://issues.apache.org/jira/browse/DERBY-6297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-6297:
--------------------------------------
Attachment: d6297-1a.diff
Attaching d6297-1a.diff which makes AccessDatabase.schemaExists() close the
ResultSet before returning.
The patch also adds an assert to testXplainOnlyExecutePrepared(). The reason
for this, was that I found during debugging that the getSchemas query was
recorded in the xplain tables much more frequently in this test case than in
testSimpleXplainOnly(). But it didn't fail because it didn't check the xplain
tables. With the extra assert, I could reproduce the intermittent failure much
easier in my environment.
All the regression tests passed with the patch.
I also ran XplainStatisticsTest in a loop. It used to fail in approximately one
out of five runs without the fix. With the fix, it ran 96 times in a row
without failing. The 97th time, it failed with the same symptoms as reported in
DERBY-6306, which I believe is a different bug.
> Intermittent failures in XplainStatisticsTest.testSimpleXplainOnly
> ------------------------------------------------------------------
>
> Key: DERBY-6297
> URL: https://issues.apache.org/jira/browse/DERBY-6297
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.11.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: d6297-1a.diff
>
>
> XplainStatisticsTest.testSimpleXplainOnly fails intermittently.
> Examples:
> http://download.java.net/javadesktop/derby/javadb-5579342-report/javadb-task-3689858.html
> junit.framework.AssertionFailedError: Column value mismatch @ column '1',
> row 1:
> Expected: >1<
> Found: >2<
> at
> org.apache.derbyTesting.junit.JDBC.assertRowInResultSet(JDBC.java:1278)
> at
> org.apache.derbyTesting.junit.JDBC.assertRowInResultSet(JDBC.java:1190)
> at
> org.apache.derbyTesting.junit.JDBC.assertFullResultSetMinion(JDBC.java:1077)
> at
> org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:1000)
> at org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:957)
> at org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:915)
> at
> org.apache.derbyTesting.junit.JDBC.assertSingleValueResultSet(JDBC.java:900)
> at
> org.apache.derbyTesting.functionTests.tests.lang.XplainStatisticsTest.testSimpleXplainOnly(XplainStatisticsTest.java:1148)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:439)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:456)
> 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 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)
> http://download.java.net/javadesktop/derby/javadb-5579365-report/javadb-task-3690182.html
> junit.framework.AssertionFailedError: Column value mismatch @ column '1',
> row 1:
> Expected: >4<
> Found: >7<
> at
> org.apache.derbyTesting.junit.JDBC.assertRowInResultSet(JDBC.java:1278)
> at
> org.apache.derbyTesting.junit.JDBC.assertRowInResultSet(JDBC.java:1190)
> at
> org.apache.derbyTesting.junit.JDBC.assertFullResultSetMinion(JDBC.java:1077)
> at
> org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:1000)
> at org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:957)
> at org.apache.derbyTesting.junit.JDBC.assertFullResultSet(JDBC.java:915)
> at
> org.apache.derbyTesting.junit.JDBC.assertSingleValueResultSet(JDBC.java:900)
> at
> org.apache.derbyTesting.functionTests.tests.lang.XplainStatisticsTest.testSimpleXplainOnly(XplainStatisticsTest.java:1183)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:439)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:456)
> 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 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)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira