db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: [jira] Assigned: (JDO-144) Incorrect value for public Collection CollectionOfDate12
Date Sat, 22 Oct 2005 17:58:24 GMT
Hi,

Nice analysis, Andy. I agree that the test should be changed as you  
suggest.

Thanks,

Craig

On Oct 22, 2005, at 3:01 AM, Andy Jefferson (JIRA) wrote:

>      [ http://issues.apache.org/jira/browse/JDO-144?page=all ]
>
> Andy Jefferson reassigned JDO-144:
> ----------------------------------
>
>     Assign To: Michelle Caisse  (was: Andy Jefferson)
>
> Thanks Michelle.
> Well I'll explain what the problem is, and some options.
>
> The test creates an object with many collections and instantiates  
> them as Vectors (as you know). It tries to persist it, and JPOX  
> converts all Collection fields to the equivalent wrapper type for  
> the _instantiated_ type of the field. This is fine. The test then  
> goes back to the datastore and retrieves the persisted object. JPOX  
> has to look at what is in the datastore for each Collection field  
> and create a suitable Collection. At this point it has no idea that  
> the user wants a Vector creating since the instantiated type is not  
> stored in the datastore anywhere. Consequently it knows it has to  
> create a Collection type, and that the user has provided an  
> <order>, so it create an ArrayList (since that is the JPOX-defined  
> default for Lists).
>
> How is JPOX to know that it should instantiate the fields as Vector  
> when it is simply retrieving an object from the datastore and the  
> declared type of the field is Collection ? JPOX calls the default  
> constructor of CollectionCollections and then has to instantiate  
> each field somehow. So it takes a guess. If anyone thinks it should  
> do better, then please please define how.
>
> What I would do to the test is change your "Vector.elementAt(i)"  
> calls to be "List.get(i)" (since List.get(i) is more generic and  
> does the same thing as Vector.elementAt(i)), and cast the  
> Collection field to a List instead of a Vector. This will work  
> because JPOX (CVS) has given it a List wrapper.
>
> Hope that makes sense.
>
>
>> Incorrect value for public Collection CollectionOfDate12
>> --------------------------------------------------------
>>
>>          Key: JDO-144
>>          URL: http://issues.apache.org/jira/browse/JDO-144
>>      Project: JDO
>>         Type: Bug
>>   Components: tck20
>>     Reporter: Michelle Caisse
>>     Assignee: Michelle Caisse
>>
>
>
>>
>> [java] 1) test 
>> (org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections) 
>> junit.framework.AssertionFailedError: Assertion A6.4.3-33  
>> (TestCollectionCollections) failed:
>> [java] Incorrect value for public Collection CollectionOfDate12
>> [java]      at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:546)
>> [java]      at  
>> org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.checkV 
>> alues(TestCollectionCollections.java:146)
>> [java]      at  
>> org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.runTes 
>> t(TestCollectionCollections.java:104)
>> [java]      at  
>> org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.test 
>> (TestCollectionCollections.java:69)
>> [java]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>> Method)
>> [java]      at sun.reflect.NativeMethodAccessorImpl.invoke 
>> (NativeMethodAccessorImpl.java:39)
>> [java]      at sun.reflect.DelegatingMethodAccessorImpl.invoke 
>> (DelegatingMethodAccessorImpl.java:25)
>> [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>> [java]      at org.apache.jdo.tck.util.BatchTestRunner.start 
>> (BatchTestRunner.java:115)
>> [java]      at org.apache.jdo.tck.util.BatchTestRunner.main 
>> (BatchTestRunner.java:93)
>>
>
> -- 
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the  
> administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
>
>


Mime
View raw message