Bryan Pendleton (JIRA) wrote:

[ http://issues.apache.org/jira/browse/DERBY-1229?page=comments#action_12375657 ]
Bryan Pendleton commented on DERBY-1229:
----------------------------------------

Can you confirm that if you add the following line to derby_tests.policy, the problem 
goes away? The line should be added to all three of the derby.jar, derbynet.jar, and 
derbytools.jar sections, which is easiest to do if you just search for 
"DERBY-622" and then add this line right after it:

permission java.lang.RuntimePermission "getProtectionDomain";
Yes, this seems to solve the problem in my environment.

In some ways, what's confusing about this bug is not that you have to add this 
line, it's that nobody else has had to add this line. From what I can tell by 
reading the Sun javadocs, everybody should have needed the getProtectionDomain 
permission, and certainly when I wrote a simple standalone test program, the 
program failed unless I gave it the getProtectionDomain permission. So I don't 
understand why the rest of us have been getting away without having this 
permission in place.
I don't have any good answer to this. I know that when I tested two builds (one with debug and one without) of the same Derby version here I only saw the problem with one of the builds. Possibly it will only happen if you have built Derby with a specific setting, or lacking a specific setting?

If you could please try adding the permission to the derby_tests.policy file, 
and verify that the sysinfo and sysinfo_withproperties tests then pass, that 
would be nice. Thanks!

Yes, both tests pass now. Thank you for looking into this, Bryan. :)

Vemund

sysinfo and sysinfo_withproperties.java fail with java.lang.RuntimePermission 
getProtectionDomain when db2jcc.jar is in same dir as the derby-jars
--------------------------------------------------------------------------------------------------------------------------------------------------

        Key: DERBY-1229
        URL: http://issues.apache.org/jira/browse/DERBY-1229
    Project: Derby
       Type: Test

 Components: Security, Test, Tools
   Versions: 10.2.0.0
Environment: Solaris 10 x86
Sun JDK java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
   Reporter: Vemund Østgaard
   Priority: Minor

The problem I've been seeing is that if I run:
java -Dframework=DerbyNetClient 
org.apache.derbyTesting.functionTests.harness.RunTest derbynet/sysinfo.java
in a configuration where my db2jcc.jar is located in the same directory as all 
the other derby-jars, then the test fails with a diff caused by a 
RuntimeException. If I change nothing else then moving that db2jcc.jar out of 
that directory (and making the appropriate classpath change) then the test 
succeeds.
The reason is that the test fails to get the permission for doing 
getProtectionDomain().getCodeSource() on class com.ibm.db2.jcc.DB2Driver. Below 
follows relevant output from my system that might be useful to debug this:
---
[EMAIL PROTECTED]:~/tmp/test> env |grep CLAS 
CLASSPATH=/home/vo136787/derby/tmp/testbuild/lib/derby.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyTesting.jar:/home/vo136787/derby/tmp/testbuild/lib/derbytools.jar:/home/vo136787/derby/tmp/testbuild/lib/derbynet.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyclient.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyrun.jar:/home/vo136787/derby/tmp/testbuild/lib/junit.jar:/home/vo136787/derby/tmp/testbuild/lib/db2jcc.jar:/home/vo136787/derby/tmp/testbuild/lib/db2jcc_license_c.jar:/home/vo136787/derby/tmp/testbuild/lib/jakarta-oro-2.0.8.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_de_DE.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_es.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_fr.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_it.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_ja_JP.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_ko_KR.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_pt_BR.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_zh_CN.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_zh_TW.jar
[EMAIL PROTECTED]:~/tmp/test> java -Dframework=DerbyNetClient 
org.apache.derbyTesting.functionTests.harness.RunTest derbynet/sysinfo.java
*** Start: sysinfo jdk1.5.0_06 DerbyNetClient 2006-04-19 13:00:33 ***
Initialize for framework: DerbyNetClient
java -Dderby.system.home=/home/vo136787/tmp/test/DerbyNetClient/sysinfo 
-Djava.security.manager 
-Djava.security.policy=/home/vo136787/tmp/test/derby_tests.policy 
-DderbyTesting.codejar=file:/home/vo136787/derby/tmp/testbuild/lib/ 
-DderbyTesting.codedir=/home/vo136787/derby/tmp/testbuild/lib 
-DderbyTesting.serverhost=localhost -DderbyTesting.clienthost=localhost 
-DderbyTesting.codeclasses=file://unused/ 
org.apache.derby.drda.NetworkServerControl start
-- SecurityManager not installed --
Attempt to shutdown framework: DerbyNetClient
14a15
[Unable to access Protection Domain or Code Source for class class 
com.ibm.db2.jcc.DB2Driver: access denied (java.lang.RuntimePermission 
getProtectionDomain)] 2.4 - (17)
41a43
[Unable to access Protection Domain or Code Source for class class 
com.ibm.db2.jcc.DB2Driver: access denied (java.lang.RuntimePermission 
getProtectionDomain)] 2.4 - (17)
69a72
[Unable to access Protection Domain or Code Source for class class 
com.ibm.db2.jcc.DB2Driver: access denied (java.lang.RuntimePermission 
getProtectionDomain)] 2.4 - (17)
Test Failed.
*** End:   sysinfo jdk1.5.0_06 DerbyNetClient 2006-04-19 13:00:40 ***
[EMAIL PROTECTED]:~/tmp/test> java org.apache.derby.tools.sysinfo
------------------ Java Information ------------------
Java Version:    1.5.0_06
Java Vendor:     Sun Microsystems Inc.
Java home:       /usr/jdk/instances/jdk1.5.0/jre
Java classpath:  
/home/vo136787/derby/tmp/testbuild/lib/derby.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyTesting.jar:/home/vo136787/derby/tmp/testbuild/lib/derbytools.jar:/home/vo136787/derby/tmp/testbuild/lib/derbynet.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyclient.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyrun.jar:/home/vo136787/derby/tmp/testbuild/lib/junit.jar:/home/vo136787/derby/tmp/testbuild/lib/db2jcc.jar:/home/vo136787/derby/tmp/testbuild/lib/db2jcc_license_c.jar:/home/vo136787/derby/tmp/testbuild/lib/jakarta-oro-2.0.8.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_de_DE.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_es.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_fr.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_it.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_ja_JP.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_ko_KR.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_pt_BR.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_zh_CN.jar:/home/vo136787/derby/tmp/testbuild/lib/derbyLocale_zh_TW.jar
OS name:         SunOS
OS architecture: x86
OS version:      5.10
Java user name:  vo136787
Java user home:  /home/vo136787
Java user dir:   /home/vo136787/tmp/test
java.specification.name: Java Platform API Specification
java.specification.version: 1.5
--------- Derby Information --------
JRE - JDBC: J2SE 5.0 - JDBC 3.0
[/home/vo136787/derby/tmp/testbuild/lib/derby.jar] 10.2.0.0 alpha - (394991)
[/home/vo136787/derby/tmp/testbuild/lib/derbytools.jar] 10.2.0.0 alpha - 
(394991)
[/home/vo136787/derby/tmp/testbuild/lib/derbynet.jar] 10.2.0.0 alpha - (394991)
[/home/vo136787/derby/tmp/testbuild/lib/derbyclient.jar] 10.2.0.0 alpha - 
(394991)
[/home/vo136787/derby/tmp/testbuild/lib/db2jcc.jar] 2.4 - (17)
[/home/vo136787/derby/tmp/testbuild/lib/db2jcc_license_c.jar] 2.4 - (17)
------------------------------------------------------
----------------- Locale Information -----------------
Current Locale :  [English/United States [en_US]]
Found support for locale: [de_DE]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [es]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [fr]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [it]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [ja_JP]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [ko_KR]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [pt_BR]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [zh_CN]
       version: 10.2.0.0 alpha - (394991)
Found support for locale: [zh_TW]
       version: 10.2.0.0 alpha - (394991)
------------------------------------------------------
[EMAIL PROTECTED]:~/tmp/test> java org.apache.derby.tools.sysinfo -cp
Testing for presence of all Derby-related libraries; typically, only some are 
needed.
For a list of possible arguments, type java org.apache.derby.tools.sysinfo -cp 
args
FOUND IN CLASS PATH:
 Derby embedded engine library (derby.jar)
 /home/vo136787/derby/tmp/testbuild/lib/derby.jar
 Derby embedded engine library (derby.jar)
 /home/vo136787/derby/tmp/testbuild/lib/derby.jar
 Derby Network Server library (derbynet.jar)
 /home/vo136787/derby/tmp/testbuild/lib/derbynet.jar
 Derby Client libraries (db2jcc.jar)
 /home/vo136787/derby/tmp/testbuild/lib/db2jcc.jar
 Derby Client libraries (derbyclient.jar)
 /home/vo136787/derby/tmp/testbuild/lib/derbyclient.jar
NOT FOUND IN CLASS PATH:
 Derby tools library (derbytools.jar)
  (org.apache.derby.tools.ij not found.)



Reply via email to