You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vladimir Ivanov (JIRA)" <ji...@apache.org> on 2006/08/14 13:46:14 UTC
[jira] Created: (HARMONY-1172) [classlib][security] compatibility:
SecureClassLoader.defineClass(...) throws NPE on Harmony and
NoClassDefFoundError on RI.
[classlib][security] compatibility: SecureClassLoader.defineClass(...) throws NPE on Harmony and NoClassDefFoundError on RI.
----------------------------------------------------------------------------------------------------------------------------
Key: HARMONY-1172
URL: http://issues.apache.org/jira/browse/HARMONY-1172
Project: Harmony
Issue Type: Bug
Reporter: Vladimir Ivanov
The method SecureClassLoader.defineClass(...) throws NPE for class name with "/" while Harmony+j9 throws NPE and Harmony+drlvm throws IndexOutOfBoundsException.
For name without "/" RI and Harmony throws NPE, so it may be 'non-bug diff'.
============= test.java =================
import java.security.*;
import java.net.*;
import java.nio.*;
public class test {
public static void main (String[] args) throws Exception {
testSecureClassLoader cl = new testSecureClassLoader(new testSecureClassLoader());
URL url = new URL("file://C:/test.jar");
try {
cl.testdefineClass("/k", new byte[] {}, 126, 0, new CodeSource(url, new CodeSigner[820]));
} catch (Throwable e) {
System.out.println("name = '/k', res = " + e);
}
try {
cl.testdefineClass("k", new byte[] {}, 126, 0, new CodeSource(url, new CodeSigner[820]));
} catch (Throwable e) {
System.out.println("name = 'k', res = " + e);
}
}
}
class testSecureClassLoader extends SecureClassLoader {
testSecureClassLoader(){ super(); }
testSecureClassLoader(testSecureClassLoader cl){ super(cl); }
public Class testdefineClass (String name, byte[] array, int off, int len, CodeSource cs) {
return super.defineClass(name, array, off, len, cs);
}
public Class testdefineClass (String name, ByteBuffer array, CodeSource cs) {
return super.defineClass(name, array, cs);
}
}
=====================================
Output:
C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))
name = '/k', res = java.lang.NoClassDefFoundError: IllegalName: /k
name = 'k', res = java.lang.NullPointerException
C:\tmp\tmp17>C:\harmony\classlib1.5\deploy\jdk\jre\bin\java.exe -cp . -showversion test
java version 1.5 (subset)
(c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
name = '/k', res = java.lang.NullPointerException
name = 'k', res = java.lang.NullPointerException
C:\tmp\tmp17>C:\harmony\drlvm1.5\build\win_ia32_msvc_debug\deploy\jre\bin\java -Dvm.assert_dialog=false -cp . -showversion test
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r431304, (Aug 14 2006), Windows/ia32/msvc 1310, debug build
http://incubator.apache.org/harmony
name = '/k', res = java.lang.IndexOutOfBoundsException: Check your arguments
name = 'k', res = java.lang.NullPointerException
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira