[
https://issues.apache.org/jira/browse/DERBY-6092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13624883#comment-13624883
]
Knut Anders Hatlen commented on DERBY-6092:
-------------------------------------------
I don't have access to a test environment where I can reproduce this problem,
unfortunately.
The revision that Mike identified, made some queries that previously stored the
entire LOB in memory, use temporary files instead. It sounds reasonable that
the IOException goes away when the change is backed out, as it previously
didn't have to do any I/O. That revision did however not change how the
temporary files were handled, so I'd expect the exception to be reproducible
also with earlier revisions.
Here's what I would have done to check that, if I could reproduce the failure:
- move to a revision before DERBY-5752
- remove all ORDER BY clauses from BlobClob4BlobTest (there are five of them,
and the test seems to pass without them, at least in my environment)
- run BlobClob4BlobTest repeatedly to see if it reproduces the problem
By removing the ORDER BY clauses, the test should skip materialization even
before DERBY-5752, and it should exercise the same code path as the unmodified
test does after DERBY-5752.
> testPositionAgressive(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)j
> fails with : 'The handle is invalid.: java.io.IOException'.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-6092
> URL: https://issues.apache.org/jira/browse/DERBY-6092
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.10.1.2
> Environment: IBM 1,5
> java.specification.version: 1.5
> java.runtime.version: pwi32dev-20121015 (SR15 )
> java.fullversion: J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20121012
> (JIT enabled)
> J9VM - 20121010_124616_lHdSMr
> JIT - 20120914_26053ifx1_r8
> GC - 20120911_AA
> Reporter: Kathey Marsden
> Priority: Blocker
>
> There was 1 error:
> http://people.apache.org/~myrnavl/derby_test_results/main/windows/testlog/ibm15/1449432-suites.All_diff.txt
> 1)
> testPositionAgressive(org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest)java.sql.SQLException:
> Java exception: 'The handle is invalid.: java.io.IOException'.
> 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.javaException(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.clearLOBMapping(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.commit(Unknown Source)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.commit(BaseJDBCTestCase.java:393)
> at
> org.apache.derbyTesting.functionTests.tests.jdbcapi.BlobClob4BlobTest.testPositionAgressive(BlobClob4BlobTest.java:1070)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 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)
> 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)
> 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)
> 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)
> Caused by: java.io.IOException: The handle is invalid.
> at java.io.RandomAccessFile.close0(Native Method)
> at java.io.RandomAccessFile.close(RandomAccessFile.java:573)
> at org.apache.derby.impl.jdbc.LOBFile.close(Unknown Source)
> at org.apache.derby.impl.jdbc.EncryptedLOBFile.close(Unknown Source)
> ... 53 more
--
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