Having tested the issue more thoroughly, I must agree with Sergey it's not a bug in our code. It seems that the RI performs no analysis where text doesn't require it as in the case with "text". It just constructs a "light-weight" object, thus accepting any value to getRunLimit() and similar methods.
If Bidi object is initialized with RTL-text only (e.g. "\u0634\u0627"), there will be one directional run as with "text". But in the latter case getRunLimit() throws ArrayIndexOutOfBoundsException if its parameter is not between 0 and getRunCount(). Thanks to Sergey for pointing it out. So we need to close the issue without applying any patches. Regards, -- Alexey A. Ivanov Intel Middleware Product Division >-----Original Message----- >From: Alexey Petrenko [mailto:[EMAIL PROTECTED] >Sent: Wednesday, August 02, 2006 12:34 PM >To: harmony-dev@incubator.apache.org >Subject: Re: [jira] Updated: (HARMONY-649) [classlib][text]compatibility: >unexpected ArrayIndexOutOfBoundsException for java.text.Bidi.getRunLimit(-1) > >I agree with Sergey that RI behaviour is strange in this case and >there is more logic in Harmony. > >But... We still need to be compatible with RI. So I vote for fixing this >bug. > >SY, Alexey > >2006/8/2, Ivanov, Alexey A <[EMAIL PROTECTED]>: >> Hi all, >> >> Does it make sense to follow the RI in this situation? >> I'm asking this because one of the comments to this issue says we >> shouldn't. >> >> IMO we should. >> >> Any other thoughts? >> >> Regards, >> -- >> Alexey A. Ivanov >> Intel Middleware Product Division >> >> >> >-----Original Message----- >> >From: Alexey A. Ivanov (JIRA) [mailto:[EMAIL PROTECTED] >> >Sent: Wednesday, August 02, 2006 12:06 PM >> >To: Ivanov, Alexey A >> >Subject: [jira] Updated: (HARMONY-649) [classlib][text]compatibility: >> >unexpected ArrayIndexOutOfBoundsException for >> java.text.Bidi.getRunLimit(-1) >> > >> > [ http://issues.apache.org/jira/browse/HARMONY-649?page=all ] >> > >> >Alexey A. Ivanov updated HARMONY-649: >> >------------------------------------- >> > >> > Attachment: Bidi.patch >> > >> >The original Bidi patch contains the same code in three functions, and >> so >> >this code should be moved into a separate function to eliminate >> duplication. >> >This is what I've done. >> >This patch should be applied instead of the original one. >> > >> >> [classlib][text]compatibility: unexpected >> ArrayIndexOutOfBoundsException >> >for java.text.Bidi.getRunLimit(-1) >> >> >> ------------------------------------------------------------------------ >> - >> >---------------------------------- >> >> >> >> Key: HARMONY-649 >> >> URL: http://issues.apache.org/jira/browse/HARMONY-649 >> >> Project: Harmony >> >> Issue Type: Bug >> >> Reporter: Vladimir Ivanov >> >> Attachments: Bidi.patch, Bidi.patch, BidiTest.patch >> >> >> >> >> >> The Harmony method java.text.Bidi.getRunLimit(-1) throws >> >ArrayIndexOutOfBoundsException while RI return valid value. >> >> Note, the spec says nothing about exceptions in this case. >> >> ============ test.java =================== >> >> import java.text.*; >> >> public class test { >> >> public static void main (String[] args) { >> >> Bidi bidi = new Bidi("text", Bidi.DIRECTION_LEFT_TO_RIGHT); >> >> try { >> >> System.out.println("getRunLimit(-1) = " + >> bidi.getRunLimit(-1) >> >+ "\npassed!"); >> >> } catch (Exception e) { >> >> e.printStackTrace(); >> >> System.out.println("failed"); >> >> } >> >> } >> >> } >> >> ====================================== >> >> C:\tmp\tmp17>C:\jrockit-j2sdk1.4.2_04\bin\java.exe -showversion test >> >> java version "1.4.2_04" >> >> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) >> >> BEA WebLogic JRockit(TM) 1.4.2_04 JVM (build >> ari-31788-20040616-1132- >> >win-ia32, >> >> Native Threads, GC strategy: parallel) >> >> getRunLimit(-1) = 4 >> >> passed! >> >> C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe - >> >showversion test >> >> java version 1.5 (subset) >> >> (c) Copyright 1991, 2006 The Apache Software Foundation or its >> licensors, >> >as app >> >> licable. >> >> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: >> -1 >> >> at java.text.Bidi.getRunLimit(Bidi.java:349) >> >> at test.main(test.java:7) >> >> failed >> >> C:\tmp\tmp17> >> > >> >-- >> >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 >> > >> > >> >> --------------------------------------------------------------------- >> Terms of use : http://incubator.apache.org/harmony/mailing.html >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > >-- >Alexey A. Petrenko >Intel Middleware Products Division > >--------------------------------------------------------------------- >Terms of use : http://incubator.apache.org/harmony/mailing.html >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]