Hello, jamvm -version gives the following: java version "1.4.2" JamVM version 1.4.5
Gnu classpath version is the 0.9.3 (on my machine the 0.9.5 compilation quickly ends with a StackOverflowError) Pierre Quoting Casey Marshall <[EMAIL PROTECTED]>: > On May 25, 2007, at 12:37 AM, Pierre Parrend wrote: > > > > > Hello, > > > > thanks for the tip, to tell the Classes to use the right policy > > reader is usefull. However, I now get a ugly NullPointerException > > in policy reading, it seems that the given reader has problem > > reading the name of the ProtectionDomain: > > > > Hmm, no, this looks more like a problem with recursive permission > checks; that is, something needs to have a permission checked while > it's checking a permission. It also looks like Classpath will > eventually deny the permission your code is requesting. > > This is a little odd, because it looks like Classpath internal code > is being denied a permission. That's wrong; library code should be > able to do what it pleases. > > This feels like a regression. What version of Classpath and jamvm are > you using? > > Thanks. > > > java.lang.ExceptionInInitializerError > > at gnu.java.security.x509.X509Certificate.toString > > (X509Certificate.java:455) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.CodeSource.toString(CodeSource.java:269) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.ProtectionDomain.toString(ProtectionDomain.java: > > 212) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.AccessControlContext.checkPermission > > (AccessControlContext.java:157) > > at java.security.AccessController.checkPermission > > (AccessController.java:76) > > at java.lang.SecurityManager.checkPermission > > (SecurityManager.java:356) > > at java.lang.SecurityManager.checkPropertyAccess > > (SecurityManager.java:820) > > at java.lang.System.getProperty(System.java:397) > > at org.apache.felix.main.Main.<clinit>(Main.java:66) > > Caused by: java.lang.NullPointerException > > at java.io.PrintWriter.println(PrintWriter.java:395) > > at java.io.PrintWriter.println(PrintWriter.java:523) > > at gnu.java.security.x509.X509Certificate.toString > > (X509Certificate.java:456) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.CodeSource.toString(CodeSource.java:269) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.ProtectionDomain.toString(ProtectionDomain.java: > > 212) > > at java.lang.StringBuffer.append(StringBuffer.java:348) > > at java.security.AccessControlContext.checkPermission > > (AccessControlContext.java:157) > > at java.security.AccessController.checkPermission > > (AccessController.java:76) > > at java.lang.SecurityManager.checkPermission > > (SecurityManager.java:356) > > at java.lang.SecurityManager.checkPropertyAccess > > (SecurityManager.java:820) > > at java.lang.System.getProperty(System.java:418) > > at java.io.PrintWriter.<clinit>(PrintWriter.java:381) > > at gnu.java.security.x509.X509Certificate.toString > > (X509Certificate.java:455) > > > > > > > > > > Quoting Casey Marshall <[EMAIL PROTECTED]>: > > > >> On May 24, 2007, at 1:58 PM, Pierre Parrend wrote: > >> > >>> > >>> Hello, > >>> > >>> for instance, I have the following command: > >>> > >>> jamvm -Djava.security.manager -Djava.security.policy=conf/ > >>> java.policy -cp > >>> bin/felix.jar: org.apache.felix.main.Main > >>> (jamvm uses the Gnu classpath, with default configuration) > >>> > >>> with following conf/java.policy file: > >>> > >>> grant codeBase "/code/osgi-projects/sfelix/sfelix0.2.2/main/-" { > >>> permission java.io.FilePermission "/home/pierre/.felix/ > >>> testSF", "read"; > >>> permission java.lang.RuntimePermission "exitVM"; > >>> }; > >>> > >>> which gives me following error: > >>> > >>> Error creating bundle cache: > >>> permission (java.io.FilePermission /home/pierre/.felix/testSF > >>> read) not granted: > >>> no protection domains > >>> Could not create framework: java.security.AccessControlException: > >>> permission > >>> (java.lang.RuntimePermission exitVM ) not granted: no protection > >>> domains > >>> java.security.AccessControlException: permission > >>> (java.lang.RuntimePermission > >>> exitVM ) not granted: no protection domains > >>> at > >>> java.security.AccessControlContext.checkPermission > >>> (AccessControlContext.java:149) > >>> at java.security.AccessController.checkPermission > >>> (AccessController.java:76) > >>> at java.lang.SecurityManager.checkPermission > >>> (SecurityManager.java:356) > >>> at java.lang.SecurityManager.checkExit(SecurityManager.java:475) > >>> at java.lang.Runtime.exit(Runtime.java:171) > >>> at java.lang.System.exit(System.java:506) > >>> at > >>> org.apache.felix.framework.util.SecureAction$Actions.run > >>> (SecureAction.java:843) > >>> at java.security.AccessController.doPrivileged > >>> (AccessController.java:195) > >>> at org.apache.felix.framework.util.SecureAction.exit > >>> (SecureAction.java:624) > >>> at org.apache.felix.framework.Felix.start(Felix.java:276) > >>> at org.apache.felix.main.Main.main(Main.java:208) > >>> > >>> (executed platform is the Felix OSGi implementation, which work > >>> well without the > >>> security set) > >>> > >> > >> One problem here is that Classpath still unfortunately uses a bogus > >> DefaultPolicy class for its policy, not the one that reads policy > >> files. You can force using the policy file reader by adding the > >> option: > >> > >> -Dpolicy.provider=gnu.java.security.PolicyFile > >> > >> ...I don't know why the default policy would reject the permission > >> checks, though, since (AFAIK) the default policy grants > >> AllPermission. > > > > > > > > -- Pierre Parrend doctorant, moniteur laboratoire CITI, 21, Av. Jean Capelle 69621 Villeurbanne Cedex [EMAIL PROTECTED] www.rzo.free.fr