Hi all, I got ArrayIndexOutOfBoundsException at java.text.SimpleDateFormat.subFormat via sun.net.httpserver.ExchangeImpl when I used com.sun.net.httpserver with OpenJDK6 as the tail of this mail.
The reason why this exception occured is that httpserver (ExchangeImpl) uses a non thread-safe SimpleDateFormat which has been modified at OpenJDK7 by JDK-6967684. ---- Bug database: http://bugs.java.com/view_bug.do?bug_id=6967684 Patch: http://hg.openjdk.java.net/jdk7/jdk7/jdk/rev/1371a2d5f3a8 ML: http://mail.openjdk.java.net/pipermail/net-dev/2010-July/001946.html ---- And the HEAD of jdk6 repos do not include this patch. If anyone knows why this patch do not backport to OpenJDK6, please tell me. --Exception details--- # java -version java version "1.6.0_28" OpenJDK Runtime Environment (IcedTea6 1.13.0pre) (rhel-1.66.1.13.0.el6-x86_64) OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode) # stack trace java.lang.ArrayIndexOutOfBoundsException: -2147483648 java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1066) java.text.SimpleDateFormat.format(SimpleDateFormat.java:899) java.text.SimpleDateFormat.format(SimpleDateFormat.java:869) java.text.DateFormat.format(DateFormat.java:333) sun.net.httpserver.ExchangeImpl.sendResponseHeaders(ExchangeImpl.java:206) sun.net.httpserver.HttpExchangeImpl.sendResponseHeaders(HttpExchangeImpl.java:86) com.sun.xml.internal.ws.transport.http.server.ServerConnectionImpl.getOutput(ServerConnectionImpl.java:145) com.sun.xml.internal.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:321) com.sun.xml.internal.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:82) com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:470) com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:233) com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95) com.sun.xml.internal.ws.transport.http.server.WSHttpHandler$HttpHandlerRunnable.run(WSHttpHandler.java:117) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:679) ---------- Thanks in advance for your help! Best regards, KUBOTA Yuji.