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

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

     [ http://issues.apache.org/jira/browse/HARMONY-1957?page=all ]

Vera Petrashkova updated HARMONY-1957:
--------------------------------------

    Attachment: testExec.zip

testExec.zip 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: HARMONY-1957
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1957
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         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 this 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