Name: joT67522 Date: 11/17/97
The DateFormat class does not appear to be
threadsafe. It is easy to reproduce.
Run the following code. You will get a lot of
StringIndexOutOfBoundsExceptions.
Please advise me if there is a design problem
with my code. Thank you.
Mike Freemon
Sr. Systems Analyst
Information Technology
Illinois Power
Decatur IL USA
###@###.###
voice: 217-425-4197
import java.text.*;
import java.util.*;
public class Main implements Runnable
{
private static DateFormat dateFormat;
private static Thread thr1;
private static Thread thr2;
private static Thread thr3;
private static Thread thr4;
public static void main(String args[])
{
dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.MEDIUM);
TimeZone tz = TimeZone.getTimeZone("CST");
dateFormat.setTimeZone(tz);
thr1 = new Thread(new Main());
thr2 = new Thread(new Main());
thr3 = new Thread(new Main());
thr4 = new Thread(new Main());
thr1.start();
thr2.start();
thr3.start();
thr4.start();
try
{
thr1.join();
thr2.join();
thr3.join();
thr4.join();
}
catch(Exception e)
{}
} //end of method main
public void run()
{
Date ddd = new Date(97,10,12,8,59,0);
long start = ddd.getTime();
long i = 0;
while(true)
{
Date dateCurrent = new Date(start + i);
String sss = dateFormat.format(dateCurrent); //error here
i++;
if (i%100 == 0) //simple status msg
System.out.println("count is " + i + "; sss is " + sss);
}
} //end of method run
} //end of class Main
(Review ID: 20178)
======================================================================
- duplicates
-
JDK-4175308 java.text.SimpleDateFormat is not thread safe.
-
- Closed
-
-
JDK-4229798 SimpleDateFormat is not thread safe
-
- Closed
-
-
JDK-4264153 format classes are not thread-safe, and not documented as such
-
- Resolved
-
- relates to
-
JDK-4228335 SimpleDateFormat is not threadsafe (one more try)
-
- Closed
-