[
https://issues.apache.org/jira/browse/DERBY-4128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kathey Marsden updated DERBY-4128:
----------------------------------
Attachment: derby-4128_kmarsden_diff.txt
ok. Here I think is a patch which has the minimal required permissions
(derby-4128_kmarsden_diff.txt) If the trace directory already exists, it still
only requires write permission on the contents of the directory. The patch
attempts to make the trace file and if that fails on the first try with a
FileNotFoundException, it will attempt to make the directory and try again.
SystemPropertiesTest and NetworkServerControlApiTest pass with the 10.4.2.0
derbyTesting.jar. Running 10.5 tests now.
We need to document that tracing will now attempt to create the directory and
the permissions needed to do that. I will open an issue for that, but I don't
see that it will cause any regression or require a release note, because
turning on tracing where the directory did not exist would always fail before
10.5.
> Failure in ServerPropertiesTest due to java.security.AccessControlException
> on the server side, in 10.4 to 10.5.1. soft upgrade mode
> ------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4128
> URL: https://issues.apache.org/jira/browse/DERBY-4128
> Project: Derby
> Issue Type: Bug
> Components: Regression Test Failure
> Affects Versions: 10.5.1.0
> Environment: Windows Vista 64, Sun JDK 1.6.0_10, Junit 3.8.2
> Reporter: Suran Jayathilaka
> Assignee: Kathey Marsden
> Attachments: d4128.diff, derby-4128_kmarsden_diff.txt
>
>
> Soft upgrade from 10.4.2.0 to 10.5.1.0 (RC1).
> This test fails when run under suites.All as well as by itself.
> Steps to reproduce
> ---------------------------
> Steps followed are as follows.
> 1. Run setEmbeddedCP.bat from version 10.4.2.0's bin folder
> 2. In a test folder run ij
> 3. create system/wombat database.
> ij> connect 'jdbc:derby:system/wombat;create=true';
> 4. exit ij
> 5. Copy the 10.5.1.0 derby jars (from lib folder) and the derbyTesting.jar
> from 10.4.2.0 to the test folder and set classpath with them (including junit
> and ORO)
> 6. Run test
> java -Xmx512M -Xms512M -Dderby.tests.trace=true junit.textui.TestRunner
> org.apache.derbyTesting.functionTests.tests.derbynet.ServerPropertiesTest
> -------------------------------
> The test failure stack trace is
> ---------------------------------------
> testToggleTrace(org.apache.derbyTesting.functionTests.tests.derbynet.ServerPropertiesTest)junit.framework.AssertionFailedError:
> expected:<0> but was:<1>
> at
> org.apache.derbyTesting.junit.BaseTestCase.assertExecJavaCmdAsExpected(BaseTestCase.java:505)
> at
> org.apache.derbyTesting.functionTests.tests.derbynet.ServerPropertiesTest.assertSuccessfulCmd(ServerPropertiesTest.java:389)
> at
> org.apache.derbyTesting.functionTests.tests.derbynet.ServerPropertiesTest.testToggleTrace(ServerPropertiesTest.java:586)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:102)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> at junit.extensions.TestSetup.run(TestSetup.java:25)
> The Server's log shows this exception.
> ----------------------------------------------------
> 2009-03-27 19:13:54.754 GMT : Apache Derby Network Server - 10.5.1.0 -
> (757599) started and ready to accept connections on port 1527
> 2009-03-27 19:13:55.475 GMT : access denied (java.io.FilePermission
> D:\projects\derby-testing\test-10.4-3\system read)
> java.security.AccessControlException: access denied (java.io.FilePermission
> D:\projects\derby-testing\test-10.4-3\system read)
> 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.checkRead(SecurityManager.java:871)
> at java.io.File.exists(File.java:731)
> at java.io.File.mkdirs(File.java:1181)
> at org.apache.derby.impl.drda.DssTrace$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.apache.derby.impl.drda.DssTrace.startComBufferTrace(Unknown
> Source)
> at org.apache.derby.impl.drda.Session.initTrace(Unknown Source)
> at org.apache.derby.impl.drda.Session.setTraceOn(Unknown Source)
> at org.apache.derby.impl.drda.NetworkServerControlImpl.setTrace(Unknown
> Source)
> at
> org.apache.derby.impl.drda.NetworkServerControlImpl.processCommands(Unknown
> Source)
> at
> org.apache.derby.impl.drda.DRDAConnThread.sessionInitialState(Unknown Source)
> at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.