You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@abdera.apache.org by "Vera Petrashkova (JIRA)" <ji...@apache.org> on 2006/10/25 06:47:21 UTC

[jira] Created: (ABDERA-16) [drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1

[drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1 
----------------------------------------------------------------------------------------------------------------

                 Key: ABDERA-16
                 URL: http://issues.apache.org/jira/browse/ABDERA-16
             Project: Abdera
          Issue Type: Bug
         Environment: Windows and Linux
            Reporter: Vera Petrashkova


When running class is not available Harmony throws NoClassDefFoundError and it returns exit code 0..
Harmony also returns 0 if used library is not reached.
 
Process which starts jvm using java.lang.Runtime.exec(...) method  and terminates because class file or library 
is not reached return exit value 0. 
But according to J2SE API specification of java.lang.Process class:
"
public abstract int waitFor() throws InterruptedException
   Returns: the exit value of the process. By convention, 0 indicates normal termination.
"


In all these cases RI returns exit code 1.

 

1) Start jvm using some nonexistent class, 

   java -showversion -cp .  unknown_class_file

Output on RI:
============

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)

Exception in thread "main" java.lang.NoClassDefFoundError: unknown_class_file

$ echo $?
1

Output on Harmony:
==============
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
http://incubator.apache.org/harmony
Uncaught exception in main:
java.lang.NoClassDefFoundError: unknown_class_file
Caused by: java.lang.ClassNotFoundException: unknown_class_file
        at java.net.URLClassLoader.findClass(URLClassLoader.java:625)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader$SystemClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source) 

$ echo $?
0

 

2) Start jvm using some nonexistent library and existent class

   java -showversion -cp . -agentlib:unknown_library test

Output on RI:
=============
Error occurred during initialization of VM
Could not find agent library on the library path or in the local directory: unknown_library

$ echo $?
1

 
Output on Harmony:
=================
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
http://incubator.apache.org/harmony
Failed to open agent library unknown_library.dll : The specified module could not be found
.
Failed to open agent library unknown_library.dll
Failed to initialize JVMTI.
HMYEXEL062E Internal VM error: Failed to create Java VM
FAILED to invoke JVM.

$ echo $?
0

 
3) Run test from attachment
-----------testExec.java------------
import junit.framework.TestCase;
import java.io.*;
public class testExec extends TestCase {
   
    public void testExecUnknownClassFile() {
        String [] cmdL = new String[4];
        cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
        cmdL[1] = "-classpath";
        cmdL[2] = ".";
        cmdL[3] = "unknown_class_file"; 
        try {
            Process p = Runtime.getRuntime().exec(cmdL);
            p.waitFor();
            int ans = p.exitValue();
            if (ans != 1) {
                assertEquals("Incorrect exitValue", 1, ans);
            }                        
        } catch (Throwable e) {
            fail("Unexpected error: "+e);
        }
     }
 
    public void testExecUnknownLibrary() {
        String [] cmdL = new String[5];
        cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
        cmdL[1] = "-classpath";
        cmdL[2] = ".";
        cmdL[3] = "-agentpath:unknown_library"; 
        cmdL[4] = "testExec"; 
        try {
            Process p = Runtime.getRuntime().exec(cmdL);
            p.waitFor();
            int ans = p.exitValue();
            if (ans != 1) {
                assertEquals("Incorrect exitValue", 1, ans);
            }                        
        } catch (Throwable e) {
            fail("Unexpected error: "+e);
        }
     }
 
}
-------------------

    java -cp .:junit.jar junit.textui.TestRunner testExec
 

Output on RI:
===========
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)
 
..
Time: 0.146
OK (2 tests)
 

Output on Harmony:
=============== 
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
java version "1.5.0" 
pre-alpha : not complete or compatible
svn = r464471, (Oct 20 2006), Linux/ia32/gcc 3.3.3, release build
http://incubator.apache.org/harmony
.F.F
Time: 0.699
There were 2 failures:
1) testExecUnknownClassFile(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<0>
        at testExec.testExecUnknownClassFile(testExec.java:19)
        at java.lang.reflect.VMReflection.invokeMethod(Native Method)
2) testExecUnknownLibrary(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<129>
        at testExec.testExecUnknownLibrary(testExec.java:38)
        at java.lang.reflect.VMReflection.invokeMethod(Native Method)
 
FAILURES!!!
Tests run: 2,  Failures: 2,  Errors: 0



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

        

[jira] Updated: (ABDERA-16) [drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1

Posted by "Vera Petrashkova (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/ABDERA-16?page=all ]

Vera Petrashkova updated ABDERA-16:
-----------------------------------

    Attachment: testExec.zip

testExec.zip file contains test source code and class file

> [drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: ABDERA-16
>                 URL: http://issues.apache.org/jira/browse/ABDERA-16
>             Project: Abdera
>          Issue Type: Bug
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Attachments: testExec.zip
>
>
> When running class is not available Harmony throws NoClassDefFoundError and it returns exit code 0..
> Harmony also returns 0 if used library is not reached.
>  
> Process which starts jvm using java.lang.Runtime.exec(...) method  and terminates because class file or library 
> is not reached return exit value 0. 
> But according to J2SE API specification of java.lang.Process class:
> "
> public abstract int waitFor() throws InterruptedException
>    Returns: the exit value of the process. By convention, 0 indicates normal termination.
> "
> In all these cases RI returns exit code 1.
>  
> 1) Start jvm using some nonexistent class, 
>    java -showversion -cp .  unknown_class_file
> Output on RI:
> ============
> 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)
> Exception in thread "main" java.lang.NoClassDefFoundError: unknown_class_file
> $ echo $?
> 1
> Output on Harmony:
> ==============
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> Uncaught exception in main:
> java.lang.NoClassDefFoundError: unknown_class_file
> Caused by: java.lang.ClassNotFoundException: unknown_class_file
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:625)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source) 
> $ echo $?
> 0
>  
> 2) Start jvm using some nonexistent library and existent class
>    java -showversion -cp . -agentlib:unknown_library test
> Output on RI:
> =============
> Error occurred during initialization of VM
> Could not find agent library on the library path or in the local directory: unknown_library
> $ echo $?
> 1
>  
> Output on Harmony:
> =================
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> Failed to open agent library unknown_library.dll : The specified module could not be found
> .
> Failed to open agent library unknown_library.dll
> Failed to initialize JVMTI.
> HMYEXEL062E Internal VM error: Failed to create Java VM
> FAILED to invoke JVM.
> $ echo $?
> 0
>  
> 3) Run test from attachment
> -----------testExec.java------------
> import junit.framework.TestCase;
> import java.io.*;
> public class testExec extends TestCase {
>    
>     public void testExecUnknownClassFile() {
>         String [] cmdL = new String[4];
>         cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
>         cmdL[1] = "-classpath";
>         cmdL[2] = ".";
>         cmdL[3] = "unknown_class_file"; 
>         try {
>             Process p = Runtime.getRuntime().exec(cmdL);
>             p.waitFor();
>             int ans = p.exitValue();
>             if (ans != 1) {
>                 assertEquals("Incorrect exitValue", 1, ans);
>             }                        
>         } catch (Throwable e) {
>             fail("Unexpected error: "+e);
>         }
>      }
>  
>     public void testExecUnknownLibrary() {
>         String [] cmdL = new String[5];
>         cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
>         cmdL[1] = "-classpath";
>         cmdL[2] = ".";
>         cmdL[3] = "-agentpath:unknown_library"; 
>         cmdL[4] = "testExec"; 
>         try {
>             Process p = Runtime.getRuntime().exec(cmdL);
>             p.waitFor();
>             int ans = p.exitValue();
>             if (ans != 1) {
>                 assertEquals("Incorrect exitValue", 1, ans);
>             }                        
>         } catch (Throwable e) {
>             fail("Unexpected error: "+e);
>         }
>      }
>  
> }
> -------------------
>     java -cp .:junit.jar junit.textui.TestRunner testExec
>  
> Output on RI:
> ===========
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)
>  
> ..
> Time: 0.146
> OK (2 tests)
>  
> Output on Harmony:
> =============== 
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0" 
> pre-alpha : not complete or compatible
> svn = r464471, (Oct 20 2006), Linux/ia32/gcc 3.3.3, release build
> http://incubator.apache.org/harmony
> .F.F
> Time: 0.699
> There were 2 failures:
> 1) testExecUnknownClassFile(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<0>
>         at testExec.testExecUnknownClassFile(testExec.java:19)
>         at java.lang.reflect.VMReflection.invokeMethod(Native Method)
> 2) testExecUnknownLibrary(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<129>
>         at testExec.testExecUnknownLibrary(testExec.java:38)
>         at java.lang.reflect.VMReflection.invokeMethod(Native Method)
>  
> FAILURES!!!
> Tests run: 2,  Failures: 2,  Errors: 0

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

        

[jira] Commented: (ABDERA-16) [drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1

Posted by "Vera Petrashkova (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/ABDERA-16?page=comments#action_12444582 ] 
            
Vera Petrashkova commented on ABDERA-16:
----------------------------------------

This bug was created erroneously. Incorrect project was selected. This is Harmony bug.


> [drlvm] Harmony returns 0 when class file which should be run or used library is not available but RI returns 1
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: ABDERA-16
>                 URL: http://issues.apache.org/jira/browse/ABDERA-16
>             Project: Abdera
>          Issue Type: Bug
>         Environment: Windows and Linux
>            Reporter: Vera Petrashkova
>         Attachments: testExec.zip
>
>
> When running class is not available Harmony throws NoClassDefFoundError and it returns exit code 0..
> Harmony also returns 0 if used library is not reached.
>  
> Process which starts jvm using java.lang.Runtime.exec(...) method  and terminates because class file or library 
> is not reached return exit value 0. 
> But according to J2SE API specification of java.lang.Process class:
> "
> public abstract int waitFor() throws InterruptedException
>    Returns: the exit value of the process. By convention, 0 indicates normal termination.
> "
> In all these cases RI returns exit code 1.
>  
> 1) Start jvm using some nonexistent class, 
>    java -showversion -cp .  unknown_class_file
> Output on RI:
> ============
> 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)
> Exception in thread "main" java.lang.NoClassDefFoundError: unknown_class_file
> $ echo $?
> 1
> Output on Harmony:
> ==============
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> Uncaught exception in main:
> java.lang.NoClassDefFoundError: unknown_class_file
> Caused by: java.lang.ClassNotFoundException: unknown_class_file
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:625)
>         at java.lang.ClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(Unknown Source)
>         at java.lang.ClassLoader.loadClass(Unknown Source) 
> $ echo $?
> 0
>  
> 2) Start jvm using some nonexistent library and existent class
>    java -showversion -cp . -agentlib:unknown_library test
> Output on RI:
> =============
> Error occurred during initialization of VM
> Could not find agent library on the library path or in the local directory: unknown_library
> $ echo $?
> 1
>  
> Output on Harmony:
> =================
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r466303, (Oct 23 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony
> Failed to open agent library unknown_library.dll : The specified module could not be found
> .
> Failed to open agent library unknown_library.dll
> Failed to initialize JVMTI.
> HMYEXEL062E Internal VM error: Failed to create Java VM
> FAILED to invoke JVM.
> $ echo $?
> 0
>  
> 3) Run test from attachment
> -----------testExec.java------------
> import junit.framework.TestCase;
> import java.io.*;
> public class testExec extends TestCase {
>    
>     public void testExecUnknownClassFile() {
>         String [] cmdL = new String[4];
>         cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
>         cmdL[1] = "-classpath";
>         cmdL[2] = ".";
>         cmdL[3] = "unknown_class_file"; 
>         try {
>             Process p = Runtime.getRuntime().exec(cmdL);
>             p.waitFor();
>             int ans = p.exitValue();
>             if (ans != 1) {
>                 assertEquals("Incorrect exitValue", 1, ans);
>             }                        
>         } catch (Throwable e) {
>             fail("Unexpected error: "+e);
>         }
>      }
>  
>     public void testExecUnknownLibrary() {
>         String [] cmdL = new String[5];
>         cmdL[0] = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
>         cmdL[1] = "-classpath";
>         cmdL[2] = ".";
>         cmdL[3] = "-agentpath:unknown_library"; 
>         cmdL[4] = "testExec"; 
>         try {
>             Process p = Runtime.getRuntime().exec(cmdL);
>             p.waitFor();
>             int ans = p.exitValue();
>             if (ans != 1) {
>                 assertEquals("Incorrect exitValue", 1, ans);
>             }                        
>         } catch (Throwable e) {
>             fail("Unexpected error: "+e);
>         }
>      }
>  
> }
> -------------------
>     java -cp .:junit.jar junit.textui.TestRunner testExec
>  
> Output on RI:
> ===========
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)
>  
> ..
> Time: 0.146
> OK (2 tests)
>  
> Output on Harmony:
> =============== 
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0" 
> pre-alpha : not complete or compatible
> svn = r464471, (Oct 20 2006), Linux/ia32/gcc 3.3.3, release build
> http://incubator.apache.org/harmony
> .F.F
> Time: 0.699
> There were 2 failures:
> 1) testExecUnknownClassFile(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<0>
>         at testExec.testExecUnknownClassFile(testExec.java:19)
>         at java.lang.reflect.VMReflection.invokeMethod(Native Method)
> 2) testExecUnknownLibrary(testExec)junit.framework.AssertionFailedError: Unexpected error: junit.framework.AssertionFailedError: Incorrect exitValue expected:<1> but was:<129>
>         at testExec.testExecUnknownLibrary(testExec.java:38)
>         at java.lang.reflect.VMReflection.invokeMethod(Native Method)
>  
> FAILURES!!!
> Tests run: 2,  Failures: 2,  Errors: 0

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