harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Ozhdikhin (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT crashes instead of throwing NoClassDefFoundError
Date Fri, 29 Jun 2007 09:17:04 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Pavel Ozhdikhin updated HARMONY-4267:
-------------------------------------

    Attachment: 4267-full.patch

The updated patch including a complete solution and the regression test.
Passed "build test" and "reg.test" tests on Win32.


> [drlvm][jit][opt] Jitrino.OPT crashes instead of throwing NoClassDefFoundError
> ------------------------------------------------------------------------------
>
>                 Key: HARMONY-4267
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4267
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Elena Sayapina
>         Attachments: 4267-full.patch, 4267.patch
>
>
> Jitrino.OPT crashes instead of throwing NoClassDefFoundError if call a method with array
of objects of non-existing class as returning type
> Please, consider the following code:
> -------------------------------------------------------
> public class Reproduce {   
>     
>     public static void main(String [] args) {
>         new TClass().test1();
>     }
> }
> class TClass {
>    
> 	 void test1() {
> 		 RemoveMe[] arr = test();
> 	     RemoveMe element = arr[3];
> 	 }
> 	 RemoveMe[] test() {
> 		 return new RemoveMe[10];
> 	 }
> }
> class RemoveMe {}
> ---------------------------------------------------------------
> Steps to reproduce: 
> 1) compile Reproduce class
> 2) remove RemoveMe.class
> 3) run Reproduce.class
> Output on Harmony-r549703 with -Xem:opt:
> 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 = r549703, (Jun 22 2007), Windows/ia32/msvc 1310, release build
> http://harmony.apache.org
> Windows reported exception: 0xc0000005
> Registers:
>     EAX: 0xdeadbeef, EBX: 0x02362208, ECX: 0xdeadbeef, EDX: 0x013ed268
>     ESI: 0x0236210c, EDI: 0x020aa785, ESP: 0x0013edf0, EBP: 0x00000005
>     EIP: 0x00511884
> Stack trace:
>   0: class_get_name (c:\bt\build\checkouts\drlvm\vm\vmcore\src\class_support\c_interface.cpp:553)
>   1: ?? (??:-1)
> <end of stack trace>
> The callstack is:
> >	harmonyvm.dll!class_get_name(Class * cl=0xdeadbeef)  Line 553 + 0x4	C++
>  	jitrino.dll!Jitrino::ObjectType::getName()  Line 803 + 0x9	C++
>  	jitrino.dll!Jitrino::JavaByteCodeTranslator::genLdVar(unsigned int varIndex=1, Jitrino::JavaLabelPrepass::JavaVarType
javaType=A)  Line 1931 + 0x8	C++
>  	jitrino.dll!Jitrino::JavaByteCodeTranslator::aload(unsigned short varIndex=1)  Line
694	C++
>  	jitrino.dll!Jitrino::JavaByteCodeParserCallback::parseByteCode(const unsigned char
* byteCodes=0x020aa5a8, unsigned int off=1)  Line 365 + 0x9	C++
>  	jitrino.dll!Jitrino::ByteCodeParser::parse(Jitrino::ByteCodeParserCallback * cb=0x0013eef0)
 Line 70 + 0xe	C++
>  	jitrino.dll!Jitrino::JavaTranslator::translateMethod(Jitrino::CompilationInterface
& ci={...}, Jitrino::MethodDesc & methodDesc={...}, Jitrino::IRBuilder & irBuilder={...})
 Line 57	C++
>  	jitrino.dll!Jitrino::TranslatorSession::translate()  Line 68 + 0xf	C++
>  	jitrino.dll!Jitrino::TranslatorSession::run()  Line 51	C++
>  	jitrino.dll!Jitrino::Inliner::createInlineNode(Jitrino::CompilationContext & inlineCC={...},
Jitrino::MethodCallInst * call=0x0231b908)  Line 983	C++
>  	jitrino.dll!Jitrino::Inliner::getNextRegionToInline(Jitrino::CompilationContext &
inlineCC={...})  Line 957	C++
>  	jitrino.dll!Jitrino::InlinePass::_run(Jitrino::IRManager & irm={...})  Line 1187
+ 0x3b	C++
>  	jitrino.dll!Jitrino::OptPass::run()  Line 63	C++
>  	jitrino.dll!Jitrino::runPipeline(Jitrino::CompilationContext * c=0x0013f43c)  Line
230	C++
>  	jitrino.dll!Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext * cc=0x0013f43c)
 Line 269 + 0x15	C++
>  	jitrino.dll!JIT_compile_method_with_params(void * jit=0x0119ee40, void * compilation=0x0013f6d8,
Method * method_handle=0x020a2fec, OpenMethodExecutionParams compilation_params={...})  Line
284 + 0xa	C++
>  	harmonyvm.dll!Dll_JIT::compile_method_with_params(void * compilation=0x0013f6d8, Method
* method=0x020a2fec, OpenMethodExecutionParams flags={...})  Line 86 + 0x12	C++
>  	harmonyvm.dll!compile_do_compilation_jit(Method * method=0x020a2fec, JIT * jit=0x0119ee40)
 Line 658 + 0x16	C++
>  	harmonyvm.dll!vm_compile_method(void * jit=0x0119ee40, Method * method=0x020a2fec)
 Line 2572 + 0xf	C++
>  	em.dll!DrlEMImpl::compileMethod(Method * mh=0x020a2fec)  Line 545 + 0x12	C++
>  	em.dll!CompileMethod(Method * method_handle=0x020a2fec)  Line 50	C++
>  	harmonyvm.dll!compile_do_compilation(Method * method=0xdeadbeef)  Line 774 + 0x10	C++
>  	harmonyvm.dll!compile_me(Method * method=0x20770dfc)  Line 795	C++
>  	harmonyvm.dll!vm_invoke_native_array_stub(unsigned int * args=0x0013f95c, int sz=1,
void * f=0x031b0010)  Line 77	C++
>  	harmonyvm.dll!JIT_execute_method_default(void * jit=0x00000000, _jmethodID * methodID=0x020a2fec,
jvalue * return_value=0x00000000, jvalue * args=0x020a8218)  Line 200	C++
>  	em.dll!DrlEMImpl::executeMethod(_jmethodID * meth=0x020a2fec, jvalue * return_value=0x00000000,
jvalue * args=0x020a8218)  Line 509 + 0x14	C++
>  	em.dll!ExecuteMethod(_jmethodID * meth=0x020a2fec, jvalue * return_value=0x00000000,
jvalue * args=0x020a8218)  Line 44	C++
>  	harmonyvm.dll!vm_execute_java_method_array(_jmethodID * method=0x020a2fec, jvalue *
result=0x00000000, jvalue * args=0x020a8218)  Line 60 + 0x19	C++
>  	harmonyvm.dll!CallStaticVoidMethodV(JNIEnv_External * jni_env=0x011a19c0, _jobject
* clazz=0x0201ea10, _jmethodID * methodID=0x020a2fec, char * args=0x0013fa14)  Line 1546 +
0x2c	C++
>  	harmonyvm.dll!CallStaticVoidMethod(JNIEnv_External * jni_env=0x011a19c0, _jobject *
clazz=0x0201ea10, _jmethodID * methodID=0x020a2fec, ...)  Line 1537	C++
>  	java.exe!main_runJavaMain(const JNINativeInterface_ * * env=0x011a19c0, char * mainClassName=0x003a3fbc,
int nameIsUTF=0, int java_argc=0, char * * java_argv=0x003a2bd8, HyPortLibrary * portLibrary=0x0013fbb8)
 Line 1321 + 0x1b	C
>  	java.exe!invocation(HyPortLibrary * portLibrary=0x0013fbb8, int argc=4, char * * argv=0x003a2bc8,
unsigned int handle=5308416, int version=65540, unsigned char ignoreUnrecognized='', char
* mainClass=0x003a3fbc, unsigned int classArg=3, char * propertiesFileName=0x00155de8, int
isStandaloneJar=0, char * vmdllsubdir=0x0013fb40)  Line 742 + 0x2c	C
>  	java.exe!gpProtectedMain(haCmdlineOptions * args=0x0013fb90)  Line 391 + 0x33	C
>  	java.exe!main(int argc=4, char * * argv=0x003a2bc8, char * * envp=0x003a3080)  Line
146 + 0xc	C
>  	java.exe!mainCRTStartup()  Line 398 + 0xe	C
>  	kernel32.dll!7c816fd7() 	
> Output on Harmony-r549703 in default mode:
> 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 = r549703, (Jun 22 2007), Windows/ia32/msvc 1310, release build
> http://harmony.apache.org
> Uncaught exception in main:
> java.lang.NoClassDefFoundError: RemoveMe
>         at TClass.test1(Reproduce.java:11)
>         at Reproduce.main(Reproduce.java:4)
> Caused by: java.lang.ClassNotFoundException: RemoveMe
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:895)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:575)
>         at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:963)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
>         at TClass.test1(Reproduce.java:11)
>         ... 1 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message