You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Elena Sayapina (JIRA)" <ji...@apache.org> on 2007/06/22 10:00:28 UTC
[jira] Created: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
[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
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.
[jira] Resolved: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov resolved HARMONY-4267.
-------------------------------------
Resolution: Fixed
committed as r552484
> [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
> Assignee: Mikhail Fursov
> 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.
[jira] Assigned: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Fursov reassigned HARMONY-4267:
---------------------------------------
Assignee: Mikhail Fursov
> [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
> Assignee: Mikhail Fursov
> 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.
[jira] Closed: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT crashes
instead of throwing NoClassDefFoundError
Posted by "Elena Sayapina (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Elena Sayapina closed HARMONY-4267.
-----------------------------------
Verified on WinXP using Harmony-r553113-msvc-release.
> [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
> Assignee: Mikhail Fursov
> 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.
[jira] Commented: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510338 ]
Pavel Ozhdikhin commented on HARMONY-4267:
------------------------------------------
-Xem:opt option is supported on x86_64 platform. It is not supported on IPF only.
> [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
> Assignee: Mikhail Fursov
> 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.
[jira] Commented: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Elena Sayapina (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12507157 ]
Elena Sayapina commented on HARMONY-4267:
-----------------------------------------
Test org.apache.harmony.test.func.reg.jit.btest5014.Btest5014 from the functional test suite
(https://issues.apache.org/jira/browse/HARMONY-3528) fails because of this bug.
> [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
>
> 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.
[jira] Updated: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
[ 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.
[jira] Updated: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Ozhdikhin updated HARMONY-4267:
-------------------------------------
Attachment: 4267.patch
The patch is attached. NullObjectType and use of 0xdeadbeef vmTypeHandle substituted with UnresolvedObjectType. Feel free to review and comment.
> [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.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.
[jira] Commented: (HARMONY-4267) [drlvm][jit][opt] Jitrino.OPT
crashes instead of throwing NoClassDefFoundError
Posted by "Eugene S. Ostrovsky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-4267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510184 ]
Eugene S. Ostrovsky commented on HARMONY-4267:
----------------------------------------------
The regression test is configured to run with -Xem:opt option.
x86_64 platforms don't support this mode and test crashes.
The test should be added to exclude lists for x86_64 platforms.
> [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
> Assignee: Mikhail Fursov
> 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.