aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@albatross.co.nz>2000-02-25 22:38:33 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2000-02-25 22:38:33 +0000
commit4ae4a3c9739e483a5f2c6c63ec636489f475add6 (patch)
tree251f10be1ba038997fcdd6f8b2fa78080ac48f20 /libjava
parent0ad913af75bd074c706e162e99591a5d6db37c9f (diff)
downloadgcc-4ae4a3c9739e483a5f2c6c63ec636489f475add6.zip
gcc-4ae4a3c9739e483a5f2c6c63ec636489f475add6.tar.gz
gcc-4ae4a3c9739e483a5f2c6c63ec636489f475add6.tar.bz2
re GNATS libgcj/38 (Static initializer in DecimalFormat eventually depends on itself)
2000-02-25 Bryce McKinlay <bryce@albatross.co.nz> * java/net/URLConnection.java (initializeDateFormats): New private method. (getHeaderFieldDate): Call initializeDateFormats if required. locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize these. Fix for PR libgcj/38. From-SVN: r32153
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/java/net/URLConnection.java28
2 files changed, 30 insertions, 7 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 6cb290b..22f8522 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2000-02-25 Bryce McKinlay <bryce@albatross.co.nz>
+
+ * java/net/URLConnection.java (initializeDateFormats): New
+ private method.
+ (getHeaderFieldDate): Call initializeDateFormats if required.
+ locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize
+ these.
+ Fix for PR libgcj/38.
+
2000-02-24 Warren Levy <warrenl@cygnus.com>
* java/math/BigInteger.java(ival): Made private.
diff --git a/libjava/java/net/URLConnection.java b/libjava/java/net/URLConnection.java
index a9b42e9..60cfd76 100644
--- a/libjava/java/net/URLConnection.java
+++ b/libjava/java/net/URLConnection.java
@@ -47,13 +47,9 @@ public abstract class URLConnection
private static ContentHandlerFactory factory;
private static ContentHandler contentHandler;
private static Hashtable handlers = new Hashtable();
- private static Locale locale = new Locale("En", "Us", "Unix");
- private static SimpleDateFormat dateFormat1 =
- new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss 'GMT'", locale);
- private static SimpleDateFormat dateFormat2 =
- new SimpleDateFormat("EEEE, dd-MMM-yy hh:mm:ss 'GMT'", locale);
- private static SimpleDateFormat dateFormat3 =
- new SimpleDateFormat("EEE MMM d hh:mm:ss yyyy", locale);
+ private static Locale locale;
+ private static SimpleDateFormat dateFormat1, dateFormat2, dateFormat3;
+ private static boolean dateformats_initialized = false;
protected URLConnection(URL url)
{
@@ -128,6 +124,8 @@ public abstract class URLConnection
public long getHeaderFieldDate(String name, long val)
{
+ if (! dateformats_initialized)
+ initializeDateFormats();
String str = getHeaderField(name);
if (str != null)
{
@@ -437,4 +435,20 @@ public abstract class URLConnection
handlers.put(contentType, contentType);
return null;
}
+
+ // We don't put these in a static initializer, because it creates problems
+ // with initializer co-dependency: SimpleDateFormat's constructors eventually
+ // depend on URLConnection (via the java.text.*Symbols classes).
+ private synchronized void initializeDateFormats()
+ {
+ if (dateformats_initialized)
+ return;
+ locale = new Locale("En", "Us", "Unix");
+ dateFormat1 = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss 'GMT'",
+ locale);
+ dateFormat2 = new SimpleDateFormat("EEEE, dd-MMM-yy hh:mm:ss 'GMT'",
+ locale);
+ dateFormat3 = new SimpleDateFormat("EEE MMM d hh:mm:ss yyyy", locale);
+ dateformats_initialized = true;
+ }
}