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] [Commented] (DERBY-6224) Many test failures on latest JDK 8 EA build because of missing SQLPermission
Date Fri, 21 Jun 2013 07:30:21 GMT

    [ https://issues.apache.org/jira/browse/DERBY-6224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13690091#comment-13690091
] 

Knut Anders Hatlen commented on DERBY-6224:
-------------------------------------------

> Does this issue pertain to the client driver at all? We do autoload it, but I guess it
would be up to the user to deregister it...

The Derby code does not attempt to deregister the client driver, so there are no changes needed
in Derby. It might however be worth mentioning in the release note that user code that deregisters
the driver manually, will also need the permission, and will possibly have to invoke it with
doPrivileged().

> Next, what about the server? Doesn't the embedded driver get loaded when running the
server too? If so, shouldn't we warn against customized server policies needing updates as
well?

Yes, the server does load the embedded driver. And when the server is started from the command
line, server shutdown will invoke engine shutdown. The fix made the network server shut down
the engine with deregister=false so that the permission is not needed on server shutdown.

If the server was not started from the command line, it will not attempt to shutdown the engine
during server shutdown, so the permission is not needed for that case either.
                
> 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
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.8.3.1, 10.9.2.2, 10.10.1.3, 10.11.0.0
>
>         Attachments: buildbreak-10.10.diff, derby-6224-01-a.diff, derby-6224-01-b.diff,
derby-6224-02-a.diff, derby-6224-02-b-with-test.diff, releaseNote.html, releaseNote.html
>
>
> 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