harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samoilenko, Svetlana V" <svetlana.v.samoile...@intel.com>
Subject RE: [jira] Created: (HARMONY-100) text/BidiWrapper issue?
Date Mon, 20 Feb 2006 04:17:32 GMT
I am going to be a 1000th customer (a gift is several orders greater,
isn't it? ;))

Regards,
Svetlana

-----Original Message-----
From: Tim Ellison [mailto:t.p.ellison@gmail.com] 
Sent: Friday, February 17, 2006 6:45 PM
To: harmony-dev@incubator.apache.org
Subject: Re: [jira] Created: (HARMONY-100) text/BidiWrapper issue?

congratulations -- you are our 100th customer!  Step over here for your
special gift.

(Too bad Svetlana, you missed out after all that hard work :-) ).

Tim

Vladimir Gorr (JIRA) wrote:
> text/BidiWrapper issue?
> -----------------------
> 
>          Key: HARMONY-100
>          URL: http://issues.apache.org/jira/browse/HARMONY-100
>      Project: Harmony
>         Type: Bug
>     Reporter: Vladimir Gorr
> 
> 
> Let's consider the following test:
> 
> import java.text.Bidi;
> public class Test {
> 	public static void main(String[] args) throws Exception {
> 		Bidi bd = new Bidi(new char[] { 's', 's', 's' }, 0, 
> 				new byte[] { (byte) -7,	(byte) -2,
(byte) -3 }, 
> 				0, 3,
Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
> 		System.out.println("Expected 7, real " + "     " +
bd.getLevelAt(0));
> 	}
> }
> 
> In my opinion the JNI implementation of Bidi (text/BidiWrapper.c file,
ubidi_1setPara() function) contains a potential bug, namely:
> 1. If  the embeddingLevels  argument is not NULL then _embeddingLevels
variable is initialized with the JNI GetByteArrayElements() function;
> 2. ICU function (ubidi_setPara) initializes ICU inner structure and
puts the _embeddingLevels into it;
> 3. If _embeddingLevels pointer is not NULL then the JNI
ReleaseByteArrayElements() function (with 0 as fourth parameter) is
called.
>     This function releases the memory (according to JNI specification)
the _embeddingLevels pointer refers to;
> 4. After that ICU inner structure isn't initialized properly. Call of
ICU ubidi_getLevels() function can return incorrect values (see java
test above).
> 
> It seems the JNI_COMMIT parameter instead of "0" should be passed to
the ReleaseByteArrayElements() to avoid this problem.
> 
> I'd like to underline the test mentioned above works w/o any issues
for Harmony-14 contribution (although it shouldn't sometimes IMHO).
> Therefore if there are any doubts in my argumentation this issue can
be closed as invalid. 
> 
> 

-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.

Mime
View raw message