You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2006/08/10 00:30:14 UTC

[jira] Commented: (HARMONY-1109) [drlvm] debug build crashed on the URL.openStream() method

    [ http://issues.apache.org/jira/browse/HARMONY-1109?page=comments#action_12427042 ] 
            
Gregory Shimansky commented on HARMONY-1109:
--------------------------------------------

The test seems to be invalid. It actually causes SOE, not NPE but other VMs treat it as an NPE because they use hardware exceptions. It looks like SOE engine in drlvm just isn't mature enough to handle this situation, I am not yet sure why.

I've created a test modification which shows how it really works:

import java.net.*;
import java.io.*;

public class test1109 {
    public static void main (String[] args) {
        try {
            new URL("","nns9", 6, ":80", new TestURLStreamHandler()).openStream();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
class TestURLStreamHandler extends URLStreamHandler {
    protected URLConnection openConnection(URL arg) throws IOException {
        try {
            System.out.println("arg = " + arg);
            (new Throwable()).printStackTrace();
            return arg.openConnection();
        } catch (Throwable e) {
            return null;
        }
    }
}

The exception stack trace is growing and growing. But I didn't understand why it happens. I looked at classlib code and didn't find out how it can cause infinite recursion. The good thing is that RI does this as well so maybe classlib just has a "compatibility bug" :)

DRLVM in default mode handling of SOE doesn't handle this test correctly. On the other hand drlvm with -Xint option throws the correct SOE exception while even RI running on interpreter (-Xint) throws NPE for some reason :)

> [drlvm] debug build crashed on the URL.openStream() method
> ----------------------------------------------------------
>
>                 Key: HARMONY-1109
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1109
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Vladimir Ivanov
>
> The drlvm debug build crashed with message: "...VM Crashed! Windows reported exception: ACCESS_VIOLATION" on the simple URL.openStream() call.
> ================== test.java ==========================
> import java.net.*;
> import java.io.*;
> public class test  { 
>     public static void main (String[] args) {                     
>        try {                                          
>            new URL("","nns9", 6, ":80", new TestURLStreamHandler()).openStream();
>         } catch (Exception e) {
>            e.printStackTrace();
>        }  
>     }     
> } 
> class TestURLStreamHandler extends URLStreamHandler {
>     protected URLConnection openConnection(URL arg) throws IOException {
>         try {
>             return arg.openConnection();
>         } catch (Throwable e) {
>             return null;
>         }
>     }
> }
> ===================================================
> 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))
> java.lang.NullPointerException
>         at java.net.URL.openStream(URL.java:1007)
>         at test.main(test.java:7)
> 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.
> java.lang.NullPointerException
>         at java.net.URL.openStream(URL.java:635)
>         at test.main(test.java:7)
> 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 = r429948, (Aug  9 2006), Windows/ia32/msvc 1310, debug build
> http://incubator.apache.org/harmony
> Assertion failed: tmn_is_suspend_enabled(), file C:\harmony\drlvm1.5\vm\vmcore\src\exception\exceptions.cpp, line 143
> ...VM Crashed!
> Windows reported exception: ACCESS_VIOLATION
> Registers:
>     EAX: 0x0000103c, EBX: 0x7c97e4a0, ECX: 0x05c6064c, EDX=0x00000003
>     ESI: 0x00154a48, EDI: 0x05c62c30, ESP: 0x05c62644, EBP=0x05c62664
>     EIP: 0x101da1e5
> C:\tmp\tmp17>C:\harmony\drlvm1.5\build\win_ia32_msvc_release\deploy\jre\bin\java -Dvm.assert_dialog=false -cp . -showversion test
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r429948, (Aug  9 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> java.lang.NullPointerException
>         at java.net.URL.openStream(URL.java:635)
>         at test.main(test.java:7)

-- 
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