harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gregory Shimansky (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-2669) [classlib][charsets] Working with charset ISO-2022-CN crashes DRLVM
Date Tue, 17 Apr 2007 15:37:15 GMT

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

Gregory Shimansky updated HARMONY-2669:
---------------------------------------

    Component/s:     (was: DRLVM)
                 Classlib
        Summary: [classlib][charsets] Working with charset ISO-2022-CN crashes DRLVM  (was:
[drlvm][jni] Working with charset ISO-2022-CN crashes DRLVM)

The bug I think is actually in ICU4JNI native code implementation. When it is running on DRLVM
in debug mode, it just contains additional runtime checks from MSVC runtime. The stack trace
shows that free() is called on an invalid array elements pointer passed by the native code
to ReleaseByteArrayElements.

Java stack looks like this:

  com/ibm/icu4jni/converters/NativeConverter.setSubstitutionBytes(J[BI)I (NULL:-

2)

  com/ibm/icu4jni/charset/CharsetEncoderICU.implReplaceWith([B)V (NULL:-1)

  java/nio/charset/CharsetEncoder.replaceWith([B)Ljava/nio/charset/CharsetEncode

r; (CharsetEncoder.java:784)

  Enc.main([Ljava/lang/String;)V (Enc.java:9)


> [classlib][charsets] Working with charset ISO-2022-CN crashes DRLVM
> -------------------------------------------------------------------
>
>                 Key: HARMONY-2669
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2669
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>         Environment: Windows XP i686
>            Reporter: Salikh Zakirov
>         Assigned To: Gregory Shimansky
>         Attachments: Enc.java
>
>
> The attached test crashes debug version of DRLVM on a heap pointer validity check on
free().
> With the following stack:
>  	harmonyvm.dll!_CrtIsValidHeapPointer(const void * pUserData=0x02876958)  Line 1807
C
>  	harmonyvm.dll!_free_dbg_lk(void * pUserData=0x02876958, int nBlockUse=0x00000001) 
Line 1132 + 0x9 bytes	C
>  	harmonyvm.dll!_free_dbg(void * pUserData=0x02876958, int nBlockUse=0x00000001)  Line
1070 + 0xd bytes	C
>  	harmonyvm.dll!free(void * pUserData=0x02876958)  Line 1025 + 0xb bytes	C
>  	harmonyvm.dll!ReleaseByteArrayElements(JNIEnv_External * env=0x011c2cc0, _jobject *
array=0x0013f40c, char * elems=0x02876958, int mode=0x00000000)  Line 908 + 0x9 bytes	C++
> >	harmonyvm.dll!ReleasePrimitiveArrayCritical(JNIEnv_External * jenv=0x011c2cc0, _jobject
* array=0x0013f40c, void * carray=0x02876958, int mode=0x00000000)  Line 1305 + 0x15 bytes
C++
>  	ICUInterface34.dll!0285211e() 	
> Running the same test with J9 produces
> Exception in thread "main" java.lang.IllegalArgumentException: U_ILLEGAL_ARGUMENT_ERROR
>         at com.ibm.icu4jni.common.ErrorCode.getException(Unknown Source)
>         at com.ibm.icu4jni.charset.CharsetEncoderICU.implReplaceWith(Unknown Source)
>         at java.nio.charset.CharsetEncoder.replaceWith(CharsetEncoder.java:856)
>         at Enc.main(Enc.java:9)

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