harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Dmitriev (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-5460) [classlib][text] MessageFormat regression at r612718
Date Tue, 05 Feb 2008 17:38:08 GMT
[classlib][text] MessageFormat regression at r612718
----------------------------------------------------

                 Key: HARMONY-5460
                 URL: https://issues.apache.org/jira/browse/HARMONY-5460
             Project: Harmony
          Issue Type: Bug
          Components: Classlib
            Reporter: Sergey Dmitriev


The ICU commit r612718 brings a regression in. In particular parallel using of static method
java.text.MessageFormat.format() leads to exception.

Guess this is connected with non-synchronized usage of common code (static?).

The failure is reproducible on multi-core system (8 cores, as well as 4 cores).

[john@bigmac:~/tmp] cat icufail.java 
import java.text.MessageFormat;

public class icufail {
    public static void main(String[] args) throws Exception {
        MyThread[] threads = {null, null, null, null};

        Object[] objs0 = {};
        Object[] objs1 = {"~/tmp/"};

        for (int i=0; i<threads.length; i++) {
            threads[i] = (i%2==0) ?
                new MyThread("hello", objs0) :
                new MyThread("file {0} is empty.", objs1);
            threads[i].start();
        }

        for (int i=0; i<threads.length; i++) {
            threads[i].join();
        }
    }

    static class MyThread extends Thread {
        String template = null;
        Object[] objs = null;

        public MyThread(String template, Object[] objs) {
            this.template = template;
            this.objs = objs;
        }

        public void run() {
            for (;;) {
                String res = MessageFormat.format(template, objs);
            }
        }
    }
}

[john@bigmac:~/tmp] time ~/j/harmony.r612717.ia32/bin/java icufail
^C

real    3m26.445s
user    11m9.465s
sys     2m59.110s

[john@bigmac:~/tmp] time ~/j/harmony.r612718.ia32/bin/java icufail
Uncaught exception in Thread-14:
java.lang.StringIndexOutOfBoundsException
        at java.lang.String.substring(String.java:1466)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1744)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1625)
        at com.ibm.icu.text.MessageFormat.format(MessageFormat.java:1124)
        at java.text.Format.format(Format.java:102)
        at java.text.MessageFormat.format(MessageFormat.java:454)
        at icufail$MyThread.run(icufail.java:33)
Uncaught exception in Thread-15:
java.lang.StringIndexOutOfBoundsException
        at java.lang.String.substring(String.java:1466)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1744)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1625)
        at com.ibm.icu.text.MessageFormat.format(MessageFormat.java:1124)
        at java.text.Format.format(Format.java:102)
        at java.text.MessageFormat.format(MessageFormat.java:454)
        at icufail$MyThread.run(icufail.java:33)
Uncaught exception in Thread-16:
java.lang.StringIndexOutOfBoundsException
        at java.lang.String.substring(String.java:1466)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1744)
        at com.ibm.icu.text.MessageFormat.subformat(MessageFormat.java:1625)
        at com.ibm.icu.text.MessageFormat.format(MessageFormat.java:1124)
        at java.text.Format.format(Format.java:102)
        at java.text.MessageFormat.format(MessageFormat.java:454)
        at icufail$MyThread.run(icufail.java:33)
^C

real    0m4.799s
user    0m8.199s
sys     0m0.216s


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