Missing doPrivileged in DatabaseClasses.WriteClassFile()
--------------------------------------------------------
Key: DERBY-4859
URL: https://issues.apache.org/jira/browse/DERBY-4859
Project: Derby
Issue Type: Bug
Components: Services
Affects Versions: 10.7.0.0
Reporter: Knut Anders Hatlen
Priority: Minor
One of my test runs failed with the following error:
1)
testAllUncommittedReclaim(org.apache.derbyTesting.functionTests.tests.store.AccessTest)java.sql.SQLException:
Java exception: 'access denied (java.io.FilePermission
/export/home/tmp/kh160127/derbyall/system/ac72985692x012bxc9d4x9594xffffa08cb27a0.class
write): java.security.AccessControlException'.
at
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
(...)
Caused by: java.security.AccessControlException: access denied
(java.io.FilePermission
/export/home/tmp/kh160127/derbyall/system/ac72985692x012bxc9d4x9594xffffa08cb27a0.class
write)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at
java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at
org.apache.derby.impl.services.reflect.DatabaseClasses.WriteClassFile(Unknown
Source)
at
org.apache.derby.impl.services.reflect.DatabaseClasses.loadGeneratedClass(Unknown
Source)
(...)
I think the underlying error is an OutOfMemoryError, because I have seen tests
running out of permgen space with the same configuration lately. But that error
never gets all the way out to the test framework because of the above file
permission error.
When DatabaseClasses.loadGeneratedClass() fails with a LinkageError or a
VirtualMachineError (the super-class of OutOfMemoryError), it attempts to dump
the generated class to disk. But since the tests run under a security manager,
and the code writes the class to disk isn't wrapped in a privileged block, the
dumping of extra debug info fails and hides the original error.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.