Index: test/java/javax/jdo/identity/ObjectIdentityTest.java
===================================================================
--- test/java/javax/jdo/identity/ObjectIdentityTest.java        (revision 
209692)
+++ test/java/javax/jdo/identity/ObjectIdentityTest.java        (working copy)
@@ -27,12 +27,22 @@
 import java.io.Serializable;
 
 import java.math.BigDecimal;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import java.text.SimpleDateFormat;
+import java.text.DateFormat;
+
 import java.util.Currency;
 import java.util.Date;
 import java.util.Locale;
 
 import javax.jdo.JDOUserException;
 import javax.jdo.JDONullIdentityException;
+
+import javax.jdo.spi.JDOImplHelper;
+
 import javax.jdo.util.BatchTestRunner;
 
 /**
@@ -40,6 +50,17 @@
  */
 public class ObjectIdentityTest extends SingleFieldIdentityTest {
     
+    /** The JDOImplHelper instance used for Date formatting.
+     */
+    private static JDOImplHelper helper = (JDOImplHelper)
+        AccessController.doPrivileged(
+            new PrivilegedAction () {
+                public Object run () {
+                    return JDOImplHelper.getInstance();
+                }
+            }
+        );
+    
     /** Creates a new instance of ObjectIdentityTest */
     public ObjectIdentityTest() {
     }
@@ -199,10 +220,21 @@
     }
 
     public void testStringDateConstructor() {
+        SimpleDateFormat usDateFormat = new SimpleDateFormat
+                ("MMM dd, yyyy hh:mm:ss a", Locale.US);
+        helper.registerDateFormat(usDateFormat);
         Object c1 = new ObjectIdentity(Object.class, 
             "java.util.Date:Jan 01, 1970 00:00:00 AM");
+        helper.registerDateFormat(DateFormat.getDateTimeInstance());
     }
 
+    public void testStringDefaultDateConstructor() {
+        DateFormat dateFormat = DateFormat.getDateTimeInstance();
+        String rightNow = dateFormat.format(new Date());
+        Object c1 = new ObjectIdentity(Object.class, 
+            "java.util.Date:" + rightNow);
+    }
+
     public void testBadStringDateConstructor() {
         try {
             ObjectIdentity c1 = new ObjectIdentity(Object.class, 
Index: src/java/javax/jdo/spi/JDOImplHelper.java
===================================================================
--- src/java/javax/jdo/spi/JDOImplHelper.java   (revision 209692)
+++ src/java/javax/jdo/spi/JDOImplHelper.java   (working copy)
@@ -89,14 +89,20 @@
      */
     private final static I18NHelper msg = I18NHelper.getInstance 
("javax.jdo.Bundle"); //NOI18N
     
+    /** The DateFormat pattern.
+     */
+    private static String dateFormatPattern;
+
     /** The default DateFormat instance.
      */
-    static DateFormat dateFormat = DateFormat.getDateTimeInstance();
+    private static DateFormat dateFormat;
 
-    /** The DateFormat pattern, set to the default.
+    /** Register the default DateFormat instance.
      */
-    static String dateFormatPattern = "MMM d, yyyy hh:mm:ss a";  //NOI18N
-
+    static {
+        jdoImplHelper.registerDateFormat(DateFormat.getDateTimeInstance());
+    }
+    
     /** Creates new JDOImplHelper */
     private JDOImplHelper() {
     }
@@ -631,7 +637,7 @@
      * for error messages.
      * @param df the DateFormat instance to use
      */
-    synchronized void registerDateFormat(DateFormat df) {
+    public synchronized void registerDateFormat(DateFormat df) {
         dateFormat = df;
         if (df instanceof SimpleDateFormat) {
             dateFormatPattern = ((SimpleDateFormat)df).toPattern();

Craig Russell

Architect, Sun Java Enterprise System http://java.sun.com/products/jdo

408 276-5638 mailto:[EMAIL PROTECTED]

P.S. A good JDO? O, Gasp!


Attachment: smime.p7s
Description: S/MIME cryptographic signature



Reply via email to