db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-6224) Many test failures on latest JDK 8 EA build because of missing SQLPermission
Date Wed, 29 May 2013 12:37:21 GMT

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

Knut Anders Hatlen updated DERBY-6224:
--------------------------------------

    Attachment: derby-6224-01-a.diff

The attached patch, derby-6224-01-a.diff, wraps a doPrivileged block around the calls to DriverManager.deregisterDriver()
in AutoloadedDriver and grants SQLPermission("deregisterDriver") to derby.jar and the classes
directory in derby_tests.policy and ServerPropertiesTest.policy. This was sufficient to make
the tests run cleanly on JDK 8 EA b91, with the exception of one unrelated failure logged
as DERBY-6233.

The patch does not add the required permission to the default policy installed by the network
server when it's started from the command line. This means the network server will still print
an AccessControlException when it's shutting down, but that doesn't seem to cause any problems
for the tests. It needs to be fixed, though.
                
> Many test failures on latest JDK 8 EA build because of missing SQLPermission
> ----------------------------------------------------------------------------
>
>                 Key: DERBY-6224
>                 URL: https://issues.apache.org/jira/browse/DERBY-6224
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.11.0.0
>         Environment: java version "1.8.0-ea"
> Java(TM) SE Runtime Environment (build 1.8.0-ea-b89)
> Java HotSpot(TM) 64-Bit Server VM (build 25.0-b31, mixed mode)
>            Reporter: Knut Anders Hatlen
>         Attachments: derby-6224-01-a.diff
>
>
> With the latest EA build of JDK 8 (build 1.8.0-ea-b89), I see many failures in suites.All.
For example:
> 1) testStartNetworkServerFalse(org.apache.derbyTesting.functionTests.tests.derbynet.DerbyNetAutoStartTest)java.security.AccessControlException:
access denied ("java.sql.SQLPermission" "deregisterDriver")
> 	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364)
> 	at java.security.AccessController.checkPermission(AccessController.java:562)
> 	at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
> 	at java.sql.DriverManager.deregisterDriver(DriverManager.java:399)
> 	at org.apache.derby.jdbc.AutoloadedDriver.unregisterDriverModule(AutoloadedDriver.java:263)
> 	at org.apache.derby.jdbc.Driver20.stop(Driver20.java:105)
> 	at org.apache.derby.impl.services.monitor.TopService.stop(TopService.java:443)
> 	at org.apache.derby.impl.services.monitor.TopService.shutdown(TopService.java:394)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:227)
> 	at org.apache.derby.impl.services.monitor.FileMonitor.shutdown(FileMonitor.java:44)
> 	at org.apache.derby.impl.services.monitor.BaseMonitor.shutdown(BaseMonitor.java:197)
> 	at org.apache.derby.impl.services.monitor.FileMonitor.shutdown(FileMonitor.java:44)
> 	at org.apache.derby.jdbc.InternalDriver.connect(InternalDriver.java:255)
> 	at org.apache.derby.jdbc.Driver20.connect(Driver20.java:246)
> 	at org.apache.derby.jdbc.AutoloadedDriver.connect(AutoloadedDriver.java:145)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:661)
> 	at java.sql.DriverManager.getConnection(DriverManager.java:208)
> 	at org.apache.derbyTesting.junit.DriverManagerConnector.getConnectionByAttributes(DriverManagerConnector.java:204)
> 	at org.apache.derbyTesting.junit.DriverManagerConnector.shutEngine(DriverManagerConnector.java:171)
> 	at org.apache.derbyTesting.junit.TestConfiguration.shutdownEngine(TestConfiguration.java:1822)
> 	at org.apache.derbyTesting.functionTests.tests.derbynet.DerbyNetAutoStartTest.setUp(DerbyNetAutoStartTest.java:82)
> 	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)
> What's new in EA build 89 is that DriverManager.deregisterDriver() now requires an SQLPermission
when running under a security manager. Most of suites.All runs under a security manager, and
Derby's engine shutdown code calls deregisterDriver(), so this problem probably affects all
tests that shut down the engine.

--
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

Mime
View raw message