[
https://issues.apache.org/jira/browse/DERBY-3655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12635123#action_12635123
]
Knut Anders Hatlen commented on DERBY-3655:
-------------------------------------------
My thought was to have one instance per database since it sounds too heavy to
create one per transaction. It might be that it's too complex to be worth it,
though.
Another idea is to just add a list/set of file objects (either LOBFile or
RandomAccessFile) in EmbedConnection. Each time LOBStreamControl creates a
temporary file, it is added to the list/set, and each time LOBStreamControl
closes a temporary file, it is removed. Since there are no references from
LOBFile/RandomAccessFile to Embed[BC]lob, this list won't prevent the lob
objects in the WeakHashMap from being gc'ed. And if an object has been gc'ed
and removed from the WeakHashMap, and finalization is still pending, a
reference to the file is accessible from EmbedConnection on the transaction
boundary so that it can be closed.
> errror in nightly regression test:
> LobStreamsTest:encryptedjunit.framework.AssertionFailedError:
> f:\jartest\JarResults.2008-04-29\ibm16_suites.All\system\singleUse\oneuse1e\tmp\lob6165.tmp
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3655
> URL: https://issues.apache.org/jira/browse/DERBY-3655
> Project: Derby
> Issue Type: Bug
> Components: Regression Test Failure
> Affects Versions: 10.3.3.0, 10.4.2.0
> Environment: OS: Windows, Test: v10_4 branch insane jars, ibm16 jvm
> OS: Windows, Test: v10_3 branch insane jars, ibm142 jvm
> Reporter: Mike Matrigali
> Assignee: Kathey Marsden
>
> There was 1 failure:
> 1) LobStreamsTest:encryptedjunit.framework.AssertionFailedError:
> f:\jartest\JarResults.2008-04-29\ibm16_suites.All\system\singleUse\oneuse1e\tmp\lob6165.tmp
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.removeDir(DropDatabaseSetup.java:130)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.removeDir(DropDatabaseSetup.java:128)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.access$000(DropDatabaseSetup.java:35)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup$1.run(DropDatabaseSetup.java:105)
> at
> java.security.AccessController.doPrivileged(AccessController.java:202)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.removeDirectory(DropDatabaseSetup.java:102)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.removeDirectory(DropDatabaseSetup.java:98)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.removeDatabase(DropDatabaseSetup.java:91)
> at
> org.apache.derbyTesting.junit.DropDatabaseSetup.tearDown(DropDatabaseSetup.java:77)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:20)
> 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)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.