This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 173749 - [68cat] Strange security exception on JUnit run
Summary: [68cat] Strange security exception on JUnit run
Status: RESOLVED INCOMPLETE
Alias: None
Product: java
Classification: Unclassified
Component: JUnit (show other bugs)
Version: 6.x
Hardware: PC Windows XP
: P3 blocker (vote)
Assignee: Victor Vasilyev
URL:
Keywords:
Depends on:
Blocks: 173310
  Show dependency tree
 
Reported: 2009-10-05 12:31 UTC by ulfzibis
Modified: 2009-11-17 09:07 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
project including crash logs (90.31 KB, application/zip)
2009-11-17 09:06 UTC, ulfzibis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ulfzibis 2009-10-05 12:31:47 UTC
[ BUILD # : 4016--090930 ]
[ JDK VERSION : 1.6.* ]

On 'Test File' in my project, I get:
Testsuite: java.lang.BooleanTest
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

Null Test:         Caused an ERROR
Prohibited package name: java.lang
java.lang.SecurityException: Prohibited package name: java.lang
        at java.lang.ClassLoader.preDefineClass(ClassLoader.java:480)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124
)
        at
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)


Test java.lang.BooleanTest FAILED
test:
BUILD SUCCESSFUL (total time: 0 seconds)

For the project refer to Issue 173746.

It's not clear here, why java.lang should be prohibited, as there are
no problems on running main.Run.
Comment 1 ulfzibis 2009-10-05 13:02:01 UTC
If setting:
   run.jvmargs=-Xbootclasspath/p\:${build.classes.dir};${build.test.classes.dir}

I get:
Testsuite: java.lang.BooleanTest
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec

Null Test:         Caused an ERROR
junit/framework/TestCase
java.lang.NoClassDefFoundError: junit/framework/TestCase
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:892)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:302)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:300)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)


Test java.lang.BooleanTest FAILED
test:
BUILD SUCCESSFUL (total time: 0 seconds)

Comment 2 Alexei Mokeev 2009-11-10 02:48:51 UTC
Please take a looks at java.lang.ClassLoader.preDefineClass in your stack trace.
Reportedly it has the code like:
---
if ((name != null) && name.startsWith("java.")) {
                 throw new SecurityException("Prohibited package name: " +
                               name.substring(0,name.lastIndexOf('.')));
}
---

Don't see how Junit in NetBeans  could help here :) Please move your code out of java.lang. and everything should work.
Comment 3 ulfzibis 2009-11-16 16:52:04 UTC
java.lang.NoClassDefFoundError: junit/framework/TestCase
was caused by moving junit-3.8.2.jar to java3
try again with:
run.test.jvmargs.xbootclasspath=${build.test.classes.dir}${path.separator}"${netbeans.home}/../java3/modules/ext/junit-3.8.2.jar"
run.jvmargs=-Xbootclasspath/p:${build.classes.dir}${path.separator}${run.test.jvmargs.xbootclasspath}
Enable CoS.

> Please move your code out of java.lang ...

Not possible, because I'm working on JDK patches.
Comment 4 ulfzibis 2009-11-17 09:06:47 UTC
Created attachment 91183 [details]
project including crash logs

Additionally I was 'able' to crash the VM. See: Sun Review ID: 1654830 from Nov 16 16:31:54 MST 2009.