[ 
https://issues.apache.org/jira/browse/DERBY-4859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen reassigned DERBY-4859:
-----------------------------------------

    Assignee: Knut Anders Hatlen

> 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
>            Assignee: 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.

Reply via email to