[
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