You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by cl...@apache.org on 2005/07/22 06:48:30 UTC

svn commit: r220237 - in /incubator/jdo/trunk/api20: src/java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ObjectIdentityTest.java

Author: clr
Date: Thu Jul 21 21:48:28 2005
New Revision: 220237

URL: http://svn.apache.org/viewcvs?rev=220237&view=rev
Log:
JDO-95 if Currency.class is not available, don't test or create helper instances for Currency

Modified:
    incubator/jdo/trunk/api20/src/java/javax/jdo/spi/JDOImplHelper.java
    incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ObjectIdentityTest.java

Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/JDOImplHelper.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/java/javax/jdo/spi/JDOImplHelper.java?rev=220237&r1=220236&r2=220237&view=diff
==============================================================================
--- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/JDOImplHelper.java (original)
+++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/JDOImplHelper.java Thu Jul 21 21:48:28 2005
@@ -555,19 +555,21 @@
      */
     static {
         JDOImplHelper helper = getInstance();
-        helper.registerStringConstructor(Currency.class, new StringConstructor() {
-            public Object construct(String s) {
-                try {
-                    return Currency.getInstance(s);
-                } catch (IllegalArgumentException ex) {
-                    throw new javax.jdo.JDOUserException(
-                        msg.msg("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
-                } catch (Exception ex) {
-                    throw new JDOUserException(
-                        msg.msg("EXC_CurrencyStringConstructorException"), ex); //NOI18N
+        if (isClassLoadable("java.util.Currency")) {
+            helper.registerStringConstructor(Currency.class, new StringConstructor() {
+                public Object construct(String s) {
+                    try {
+                        return Currency.getInstance(s);
+                    } catch (IllegalArgumentException ex) {
+                        throw new javax.jdo.JDOUserException(
+                            msg.msg("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
+                    } catch (Exception ex) {
+                        throw new JDOUserException(
+                            msg.msg("EXC_CurrencyStringConstructorException"), ex); //NOI18N
+                    }
                 }
-            }
-        });
+            });
+        }
         helper.registerStringConstructor(Locale.class, new StringConstructor() {
             public Object construct(String s) {
                 try {
@@ -590,6 +592,18 @@
                 return result;
             }
         });
+    }
+    
+    /**
+     * Determine if a class is loadable in the current environment.
+     */
+    public static boolean isClassLoadable(String className) {
+        try {
+            Class.forName(className);
+            return true;
+        } catch (ClassNotFoundException ex) {
+            return false;
+        }
     }
     
     /**

Modified: incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ObjectIdentityTest.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ObjectIdentityTest.java?rev=220237&r1=220236&r2=220237&view=diff
==============================================================================
--- incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ObjectIdentityTest.java (original)
+++ incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ObjectIdentityTest.java Thu Jul 21 21:48:28 2005
@@ -113,6 +113,7 @@
     }
     
     public void testCurrencyConstructor() {
+        if (!helper.isClassLoadable("java.util.Currency")) return;
         ObjectIdentity c1 = new ObjectIdentity(Object.class, 
                 Currency.getInstance(Locale.US));
         ObjectIdentity c2 = new ObjectIdentity(Object.class, 
@@ -251,11 +252,13 @@
     }
 
     public void testStringCurrencyConstructor() {
+        if (!helper.isClassLoadable("java.util.Currency")) return;
         Object c1 = new ObjectIdentity(Object.class, 
                     "java.util.Currency:USD");
     }
 
     public void testBadStringCurrencyConstructor() {
+        if (!helper.isClassLoadable("java.util.Currency")) return;
         try {
             ObjectIdentity c1 = new ObjectIdentity(Object.class, 
                     "java.util.Currency:NowhereInTheWorld");
@@ -303,6 +306,7 @@
     }
     
     public void testSerializedCurrency() {
+        if (!helper.isClassLoadable("java.util.Currency")) return;
         ObjectIdentity c1 = new ObjectIdentity(Object.class, Currency.getInstance(Locale.US));
         ObjectIdentity c2 = new ObjectIdentity(Object.class, Currency.getInstance(Locale.US));
         ObjectIdentity c3 = new ObjectIdentity(Object.class, Currency.getInstance(Locale.GERMANY));



Re: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ObjectIdentityTest.java

Posted by Craig Russell <Cr...@Sun.COM>.
Hi Erik,

Thanks for the testing. A few more 1.4 dependencies than I was  
expecting. :-(

I'll have these fixed shortly.

Thanks,

Craig

On Jul 25, 2005, at 11:03 AM, erik@jpox.org wrote:

> I run the unit tests with JDK 1.3 and get these errors:
>
> java.lang.NoSuchMethodError
>     at
> javax.jdo.identity.ObjectIdentityTest.testSerializedLocale 
> (ObjectIdentityTest.java:346)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
> -----------------
>
> java.lang.NoSuchMethodError
>     at javax.jdo.identity.CharIdentity.toString(CharIdentity.java:97)
>     at
> javax.jdo.identity.CharIdentityTest.testToStringConstructor 
> (CharIdentityTest.java:63)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
> ---------------
>
> java.lang.NoSuchMethodError
>     at javax.jdo.spi.JDOImplHelper$2.construct(JDOImplHelper.java:576)
>     at javax.jdo.spi.JDOImplHelper.construct(JDOImplHelper.java:630)
>     at javax.jdo.identity.ObjectIdentity.<init>(ObjectIdentity.java: 
> 86)
>     at
> javax.jdo.identity.ObjectIdentityTest.testStringLocaleConstructor 
> (ObjectIdentityTest.java:250)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
>
>
> Quoting Craig Russell <Cr...@Sun.COM>:
>
>
>> Hi Erik,
>>
>> Can you please test the fix and update the JIRA JDO-95 issue if the
>> fix is ok?
>>
>> Thanks,
>>
>> Craig
>>
>> Begin forwarded message:
>>
>>
>>> From: clr@apache.org
>>> Date: July 21, 2005 9:48:30 PM PDT
>>> To: jdo-commits@db.apache.org
>>> Subject: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/
>>> java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>> Reply-To: jdo-dev@db.apache.org
>>>
>>>
>>> Author: clr
>>> Date: Thu Jul 21 21:48:28 2005
>>> New Revision: 220237
>>>
>>> URL: http://svn.apache.org/viewcvs?rev=220237&view=rev
>>> Log:
>>> JDO-95 if Currency.class is not available, don't test or create
>>> helper instances for Currency
>>>
>>> Modified:
>>>     incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java
>>>     incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>>
>>> Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java
>>> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/
>>> java/javax/jdo/spi/JDOImplHelper.java?
>>> rev=220237&r1=220236&r2=220237&view=diff
>>> ==================================================================== 
>>> ==
>>> ========
>>> --- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java (original)
>>> +++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java Thu Jul 21 21:48:28 2005
>>> @@ -555,19 +555,21 @@
>>>       */
>>>      static {
>>>          JDOImplHelper helper = getInstance();
>>> -        helper.registerStringConstructor(Currency.class, new
>>> StringConstructor() {
>>> -            public Object construct(String s) {
>>> -                try {
>>> -                    return Currency.getInstance(s);
>>> -                } catch (IllegalArgumentException ex) {
>>> -                    throw new javax.jdo.JDOUserException(
>>> -                        msg.msg
>>> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
>>> -                } catch (Exception ex) {
>>> -                    throw new JDOUserException(
>>> -                        msg.msg
>>> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
>>> +        if (isClassLoadable("java.util.Currency")) {
>>> +            helper.registerStringConstructor(Currency.class, new
>>> StringConstructor() {
>>> +                public Object construct(String s) {
>>> +                    try {
>>> +                        return Currency.getInstance(s);
>>> +                    } catch (IllegalArgumentException ex) {
>>> +                        throw new javax.jdo.JDOUserException(
>>> +                            msg.msg
>>> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
>>> +                    } catch (Exception ex) {
>>> +                        throw new JDOUserException(
>>> +                            msg.msg
>>> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
>>> +                    }
>>>                  }
>>> -            }
>>> -        });
>>> +            });
>>> +        }
>>>          helper.registerStringConstructor(Locale.class, new
>>> StringConstructor() {
>>>              public Object construct(String s) {
>>>                  try {
>>> @@ -590,6 +592,18 @@
>>>                  return result;
>>>              }
>>>          });
>>> +    }
>>> +
>>> +    /**
>>> +     * Determine if a class is loadable in the current environment.
>>> +     */
>>> +    public static boolean isClassLoadable(String className) {
>>> +        try {
>>> +            Class.forName(className);
>>> +            return true;
>>> +        } catch (ClassNotFoundException ex) {
>>> +            return false;
>>> +        }
>>>      }
>>>
>>>      /**
>>>
>>> Modified: incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/
>>> java/javax/jdo/identity/ObjectIdentityTest.java?
>>> rev=220237&r1=220236&r2=220237&view=diff
>>> ==================================================================== 
>>> ==
>>> ========
>>> --- incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java (original)
>>> +++ incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java Thu Jul 21 21:48:28 2005
>>> @@ -113,6 +113,7 @@
>>>      }
>>>
>>>      public void testCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>>                  Currency.getInstance(Locale.US));
>>>          ObjectIdentity c2 = new ObjectIdentity(Object.class,
>>> @@ -251,11 +252,13 @@
>>>      }
>>>
>>>      public void testStringCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          Object c1 = new ObjectIdentity(Object.class,
>>>                      "java.util.Currency:USD");
>>>      }
>>>
>>>      public void testBadStringCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          try {
>>>              ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>>                      "java.util.Currency:NowhereInTheWorld");
>>> @@ -303,6 +306,7 @@
>>>      }
>>>
>>>      public void testSerializedCurrency() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.US));
>>>          ObjectIdentity c2 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.US));
>>>          ObjectIdentity c3 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.GERMANY));
>>>
>>>
>>>
>>>
>>
>> Craig Russell
>> Architect, Sun Java Enterprise System http://java.sun.com/products/ 
>> jdo
>> 408 276-5638 mailto:Craig.Russell@sun.com
>> P.S. A good JDO? O, Gasp!
>>
>>
>>
>
>
>
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Re: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ObjectIdentityTest.java

Posted by Craig Russell <Cr...@Sun.COM>.
Hi Erik,

Could you please try this one.

Thanks,

Craig


On Jul 25, 2005, at 11:03 AM, erik@jpox.org wrote:

> I run the unit tests with JDK 1.3 and get these errors:
>
> java.lang.NoSuchMethodError
>     at
> javax.jdo.identity.ObjectIdentityTest.testSerializedLocale 
> (ObjectIdentityTest.java:346)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
> -----------------
>
> java.lang.NoSuchMethodError
>     at javax.jdo.identity.CharIdentity.toString(CharIdentity.java:97)
>     at
> javax.jdo.identity.CharIdentityTest.testToStringConstructor 
> (CharIdentityTest.java:63)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
> ---------------
>
> java.lang.NoSuchMethodError
>     at javax.jdo.spi.JDOImplHelper$2.construct(JDOImplHelper.java:576)
>     at javax.jdo.spi.JDOImplHelper.construct(JDOImplHelper.java:630)
>     at javax.jdo.identity.ObjectIdentity.<init>(ObjectIdentity.java: 
> 86)
>     at
> javax.jdo.identity.ObjectIdentityTest.testStringLocaleConstructor 
> (ObjectIdentityTest.java:250)
>     at java.lang.reflect.Method.invoke(Native Method)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests 
> (RemoteTestRunner.java:478)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run 
> (RemoteTestRunner.java:344)
>     at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main 
> (RemoteTestRunner.java:196)
>
>
>
> Quoting Craig Russell <Cr...@Sun.COM>:
>
>
>> Hi Erik,
>>
>> Can you please test the fix and update the JIRA JDO-95 issue if the
>> fix is ok?
>>
>> Thanks,
>>
>> Craig
>>
>> Begin forwarded message:
>>
>>
>>> From: clr@apache.org
>>> Date: July 21, 2005 9:48:30 PM PDT
>>> To: jdo-commits@db.apache.org
>>> Subject: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/
>>> java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>> Reply-To: jdo-dev@db.apache.org
>>>
>>>
>>> Author: clr
>>> Date: Thu Jul 21 21:48:28 2005
>>> New Revision: 220237
>>>
>>> URL: http://svn.apache.org/viewcvs?rev=220237&view=rev
>>> Log:
>>> JDO-95 if Currency.class is not available, don't test or create
>>> helper instances for Currency
>>>
>>> Modified:
>>>     incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java
>>>     incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>>
>>> Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java
>>> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/
>>> java/javax/jdo/spi/JDOImplHelper.java?
>>> rev=220237&r1=220236&r2=220237&view=diff
>>> ==================================================================== 
>>> ==
>>> ========
>>> --- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java (original)
>>> +++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
>>> JDOImplHelper.java Thu Jul 21 21:48:28 2005
>>> @@ -555,19 +555,21 @@
>>>       */
>>>      static {
>>>          JDOImplHelper helper = getInstance();
>>> -        helper.registerStringConstructor(Currency.class, new
>>> StringConstructor() {
>>> -            public Object construct(String s) {
>>> -                try {
>>> -                    return Currency.getInstance(s);
>>> -                } catch (IllegalArgumentException ex) {
>>> -                    throw new javax.jdo.JDOUserException(
>>> -                        msg.msg
>>> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
>>> -                } catch (Exception ex) {
>>> -                    throw new JDOUserException(
>>> -                        msg.msg
>>> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
>>> +        if (isClassLoadable("java.util.Currency")) {
>>> +            helper.registerStringConstructor(Currency.class, new
>>> StringConstructor() {
>>> +                public Object construct(String s) {
>>> +                    try {
>>> +                        return Currency.getInstance(s);
>>> +                    } catch (IllegalArgumentException ex) {
>>> +                        throw new javax.jdo.JDOUserException(
>>> +                            msg.msg
>>> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
>>> +                    } catch (Exception ex) {
>>> +                        throw new JDOUserException(
>>> +                            msg.msg
>>> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
>>> +                    }
>>>                  }
>>> -            }
>>> -        });
>>> +            });
>>> +        }
>>>          helper.registerStringConstructor(Locale.class, new
>>> StringConstructor() {
>>>              public Object construct(String s) {
>>>                  try {
>>> @@ -590,6 +592,18 @@
>>>                  return result;
>>>              }
>>>          });
>>> +    }
>>> +
>>> +    /**
>>> +     * Determine if a class is loadable in the current environment.
>>> +     */
>>> +    public static boolean isClassLoadable(String className) {
>>> +        try {
>>> +            Class.forName(className);
>>> +            return true;
>>> +        } catch (ClassNotFoundException ex) {
>>> +            return false;
>>> +        }
>>>      }
>>>
>>>      /**
>>>
>>> Modified: incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java
>>> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/
>>> java/javax/jdo/identity/ObjectIdentityTest.java?
>>> rev=220237&r1=220236&r2=220237&view=diff
>>> ==================================================================== 
>>> ==
>>> ========
>>> --- incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java (original)
>>> +++ incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
>>> ObjectIdentityTest.java Thu Jul 21 21:48:28 2005
>>> @@ -113,6 +113,7 @@
>>>      }
>>>
>>>      public void testCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>>                  Currency.getInstance(Locale.US));
>>>          ObjectIdentity c2 = new ObjectIdentity(Object.class,
>>> @@ -251,11 +252,13 @@
>>>      }
>>>
>>>      public void testStringCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          Object c1 = new ObjectIdentity(Object.class,
>>>                      "java.util.Currency:USD");
>>>      }
>>>
>>>      public void testBadStringCurrencyConstructor() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          try {
>>>              ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>>                      "java.util.Currency:NowhereInTheWorld");
>>> @@ -303,6 +306,7 @@
>>>      }
>>>
>>>      public void testSerializedCurrency() {
>>> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>>>          ObjectIdentity c1 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.US));
>>>          ObjectIdentity c2 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.US));
>>>          ObjectIdentity c3 = new ObjectIdentity(Object.class,
>>> Currency.getInstance(Locale.GERMANY));
>>>
>>>
>>>
>>>
>>
>> Craig Russell
>> Architect, Sun Java Enterprise System http://java.sun.com/products/ 
>> jdo
>> 408 276-5638 mailto:Craig.Russell@sun.com
>> P.S. A good JDO? O, Gasp!
>>
>>
>>
>
>
>
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Re: Fwd: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ObjectIdentityTest.java

Posted by er...@jpox.org.
I run the unit tests with JDK 1.3 and get these errors:

java.lang.NoSuchMethodError
	at
javax.jdo.identity.ObjectIdentityTest.testSerializedLocale(ObjectIdentityTest.java:346)
	at java.lang.reflect.Method.invoke(Native Method)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

-----------------

java.lang.NoSuchMethodError
	at javax.jdo.identity.CharIdentity.toString(CharIdentity.java:97)
	at
javax.jdo.identity.CharIdentityTest.testToStringConstructor(CharIdentityTest.java:63)
	at java.lang.reflect.Method.invoke(Native Method)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

---------------

java.lang.NoSuchMethodError
	at javax.jdo.spi.JDOImplHelper$2.construct(JDOImplHelper.java:576)
	at javax.jdo.spi.JDOImplHelper.construct(JDOImplHelper.java:630)
	at javax.jdo.identity.ObjectIdentity.<init>(ObjectIdentity.java:86)
	at
javax.jdo.identity.ObjectIdentityTest.testStringLocaleConstructor(ObjectIdentityTest.java:250)
	at java.lang.reflect.Method.invoke(Native Method)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)



Quoting Craig Russell <Cr...@Sun.COM>:

> Hi Erik,
>
> Can you please test the fix and update the JIRA JDO-95 issue if the
> fix is ok?
>
> Thanks,
>
> Craig
>
> Begin forwarded message:
>
> > From: clr@apache.org
> > Date: July 21, 2005 9:48:30 PM PDT
> > To: jdo-commits@db.apache.org
> > Subject: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/
> > java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/
> > ObjectIdentityTest.java
> > Reply-To: jdo-dev@db.apache.org
> >
> >
> > Author: clr
> > Date: Thu Jul 21 21:48:28 2005
> > New Revision: 220237
> >
> > URL: http://svn.apache.org/viewcvs?rev=220237&view=rev
> > Log:
> > JDO-95 if Currency.class is not available, don't test or create
> > helper instances for Currency
> >
> > Modified:
> >     incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
> > JDOImplHelper.java
> >     incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
> > ObjectIdentityTest.java
> >
> > Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
> > JDOImplHelper.java
> > URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/
> > java/javax/jdo/spi/JDOImplHelper.java?
> > rev=220237&r1=220236&r2=220237&view=diff
> > ======================================================================
> > ========
> > --- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
> > JDOImplHelper.java (original)
> > +++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/
> > JDOImplHelper.java Thu Jul 21 21:48:28 2005
> > @@ -555,19 +555,21 @@
> >       */
> >      static {
> >          JDOImplHelper helper = getInstance();
> > -        helper.registerStringConstructor(Currency.class, new
> > StringConstructor() {
> > -            public Object construct(String s) {
> > -                try {
> > -                    return Currency.getInstance(s);
> > -                } catch (IllegalArgumentException ex) {
> > -                    throw new javax.jdo.JDOUserException(
> > -                        msg.msg
> > ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
> > -                } catch (Exception ex) {
> > -                    throw new JDOUserException(
> > -                        msg.msg
> > ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
> > +        if (isClassLoadable("java.util.Currency")) {
> > +            helper.registerStringConstructor(Currency.class, new
> > StringConstructor() {
> > +                public Object construct(String s) {
> > +                    try {
> > +                        return Currency.getInstance(s);
> > +                    } catch (IllegalArgumentException ex) {
> > +                        throw new javax.jdo.JDOUserException(
> > +                            msg.msg
> > ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
> > +                    } catch (Exception ex) {
> > +                        throw new JDOUserException(
> > +                            msg.msg
> > ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
> > +                    }
> >                  }
> > -            }
> > -        });
> > +            });
> > +        }
> >          helper.registerStringConstructor(Locale.class, new
> > StringConstructor() {
> >              public Object construct(String s) {
> >                  try {
> > @@ -590,6 +592,18 @@
> >                  return result;
> >              }
> >          });
> > +    }
> > +
> > +    /**
> > +     * Determine if a class is loadable in the current environment.
> > +     */
> > +    public static boolean isClassLoadable(String className) {
> > +        try {
> > +            Class.forName(className);
> > +            return true;
> > +        } catch (ClassNotFoundException ex) {
> > +            return false;
> > +        }
> >      }
> >
> >      /**
> >
> > Modified: incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
> > ObjectIdentityTest.java
> > URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/
> > java/javax/jdo/identity/ObjectIdentityTest.java?
> > rev=220237&r1=220236&r2=220237&view=diff
> > ======================================================================
> > ========
> > --- incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
> > ObjectIdentityTest.java (original)
> > +++ incubator/jdo/trunk/api20/test/java/javax/jdo/identity/
> > ObjectIdentityTest.java Thu Jul 21 21:48:28 2005
> > @@ -113,6 +113,7 @@
> >      }
> >
> >      public void testCurrencyConstructor() {
> > +        if (!helper.isClassLoadable("java.util.Currency")) return;
> >          ObjectIdentity c1 = new ObjectIdentity(Object.class,
> >                  Currency.getInstance(Locale.US));
> >          ObjectIdentity c2 = new ObjectIdentity(Object.class,
> > @@ -251,11 +252,13 @@
> >      }
> >
> >      public void testStringCurrencyConstructor() {
> > +        if (!helper.isClassLoadable("java.util.Currency")) return;
> >          Object c1 = new ObjectIdentity(Object.class,
> >                      "java.util.Currency:USD");
> >      }
> >
> >      public void testBadStringCurrencyConstructor() {
> > +        if (!helper.isClassLoadable("java.util.Currency")) return;
> >          try {
> >              ObjectIdentity c1 = new ObjectIdentity(Object.class,
> >                      "java.util.Currency:NowhereInTheWorld");
> > @@ -303,6 +306,7 @@
> >      }
> >
> >      public void testSerializedCurrency() {
> > +        if (!helper.isClassLoadable("java.util.Currency")) return;
> >          ObjectIdentity c1 = new ObjectIdentity(Object.class,
> > Currency.getInstance(Locale.US));
> >          ObjectIdentity c2 = new ObjectIdentity(Object.class,
> > Currency.getInstance(Locale.US));
> >          ObjectIdentity c3 = new ObjectIdentity(Object.class,
> > Currency.getInstance(Locale.GERMANY));
> >
> >
> >
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
>




Fwd: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ObjectIdentityTest.java

Posted by Craig Russell <Cr...@Sun.COM>.
Hi Erik,

Can you please test the fix and update the JIRA JDO-95 issue if the  
fix is ok?

Thanks,

Craig

Begin forwarded message:

> From: clr@apache.org
> Date: July 21, 2005 9:48:30 PM PDT
> To: jdo-commits@db.apache.org
> Subject: svn commit: r220237 - in /incubator/jdo/trunk/api20: src/ 
> java/javax/jdo/spi/JDOImplHelper.java test/java/javax/jdo/identity/ 
> ObjectIdentityTest.java
> Reply-To: jdo-dev@db.apache.org
>
>
> Author: clr
> Date: Thu Jul 21 21:48:28 2005
> New Revision: 220237
>
> URL: http://svn.apache.org/viewcvs?rev=220237&view=rev
> Log:
> JDO-95 if Currency.class is not available, don't test or create  
> helper instances for Currency
>
> Modified:
>     incubator/jdo/trunk/api20/src/java/javax/jdo/spi/ 
> JDOImplHelper.java
>     incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ 
> ObjectIdentityTest.java
>
> Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/spi/ 
> JDOImplHelper.java
> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/ 
> java/javax/jdo/spi/JDOImplHelper.java? 
> rev=220237&r1=220236&r2=220237&view=diff
> ====================================================================== 
> ========
> --- incubator/jdo/trunk/api20/src/java/javax/jdo/spi/ 
> JDOImplHelper.java (original)
> +++ incubator/jdo/trunk/api20/src/java/javax/jdo/spi/ 
> JDOImplHelper.java Thu Jul 21 21:48:28 2005
> @@ -555,19 +555,21 @@
>       */
>      static {
>          JDOImplHelper helper = getInstance();
> -        helper.registerStringConstructor(Currency.class, new  
> StringConstructor() {
> -            public Object construct(String s) {
> -                try {
> -                    return Currency.getInstance(s);
> -                } catch (IllegalArgumentException ex) {
> -                    throw new javax.jdo.JDOUserException(
> -                        msg.msg 
> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
> -                } catch (Exception ex) {
> -                    throw new JDOUserException(
> -                        msg.msg 
> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
> +        if (isClassLoadable("java.util.Currency")) {
> +            helper.registerStringConstructor(Currency.class, new  
> StringConstructor() {
> +                public Object construct(String s) {
> +                    try {
> +                        return Currency.getInstance(s);
> +                    } catch (IllegalArgumentException ex) {
> +                        throw new javax.jdo.JDOUserException(
> +                            msg.msg 
> ("EXC_CurrencyStringConstructorIllegalArgument", s), ex); //NOI18N
> +                    } catch (Exception ex) {
> +                        throw new JDOUserException(
> +                            msg.msg 
> ("EXC_CurrencyStringConstructorException"), ex); //NOI18N
> +                    }
>                  }
> -            }
> -        });
> +            });
> +        }
>          helper.registerStringConstructor(Locale.class, new  
> StringConstructor() {
>              public Object construct(String s) {
>                  try {
> @@ -590,6 +592,18 @@
>                  return result;
>              }
>          });
> +    }
> +
> +    /**
> +     * Determine if a class is loadable in the current environment.
> +     */
> +    public static boolean isClassLoadable(String className) {
> +        try {
> +            Class.forName(className);
> +            return true;
> +        } catch (ClassNotFoundException ex) {
> +            return false;
> +        }
>      }
>
>      /**
>
> Modified: incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ 
> ObjectIdentityTest.java
> URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/ 
> java/javax/jdo/identity/ObjectIdentityTest.java? 
> rev=220237&r1=220236&r2=220237&view=diff
> ====================================================================== 
> ========
> --- incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ 
> ObjectIdentityTest.java (original)
> +++ incubator/jdo/trunk/api20/test/java/javax/jdo/identity/ 
> ObjectIdentityTest.java Thu Jul 21 21:48:28 2005
> @@ -113,6 +113,7 @@
>      }
>
>      public void testCurrencyConstructor() {
> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>          ObjectIdentity c1 = new ObjectIdentity(Object.class,
>                  Currency.getInstance(Locale.US));
>          ObjectIdentity c2 = new ObjectIdentity(Object.class,
> @@ -251,11 +252,13 @@
>      }
>
>      public void testStringCurrencyConstructor() {
> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>          Object c1 = new ObjectIdentity(Object.class,
>                      "java.util.Currency:USD");
>      }
>
>      public void testBadStringCurrencyConstructor() {
> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>          try {
>              ObjectIdentity c1 = new ObjectIdentity(Object.class,
>                      "java.util.Currency:NowhereInTheWorld");
> @@ -303,6 +306,7 @@
>      }
>
>      public void testSerializedCurrency() {
> +        if (!helper.isClassLoadable("java.util.Currency")) return;
>          ObjectIdentity c1 = new ObjectIdentity(Object.class,  
> Currency.getInstance(Locale.US));
>          ObjectIdentity c2 = new ObjectIdentity(Object.class,  
> Currency.getInstance(Locale.US));
>          ObjectIdentity c3 = new ObjectIdentity(Object.class,  
> Currency.getInstance(Locale.GERMANY));
>
>
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!