You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Geir Magnusson Jr." <ge...@pobox.com> on 2008/01/29 17:09:00 UTC

problems w/ loading

As a followup to yesterday...

We're still having problems.  The bug seems to move around depending  
on data.  We see it in 1.0.0 and we don't see it 1.0.1, but because  
it's a random, intermittent thing that seems to be data dependent, I'm  
hoping that the following gives someone an "aha!" and you can assure  
me that you know what it is, and that it's fixed in 1.0.1 :)

Thanks.  stacktrace follows :

Caused by: java.lang.IllegalArgumentException
	at com.joost.model.codes.LanguageCode.pcReplaceField(LanguageCode.java)
	at  
org 
.apache 
.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java: 
2971)
	at  
org 
.apache 
.openjpa 
.kernel.StateManagerImpl.storeStringField(StateManagerImpl.java:2455)
	at  
org 
.apache 
.openjpa.kernel.StateManagerImpl.storeString(StateManagerImpl.java:2446)
	at  
org 
.apache 
.openjpa 
.jdbc.meta.strats.StringFieldStrategy.load(StringFieldStrategy.java:155)
	at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java: 
789)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
	at  
org 
.apache 
.openjpa 
.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java: 
255)
	at  
org 
.apache 
.openjpa 
.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java: 
111)
	at  
org 
.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java: 
57)
	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
	at  
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:257)
	at org.apache.openjpa.jdbc.sql.SelectImpl 
$SelectResult.load(SelectImpl.java:2168)
	at  
org 
.apache 
.openjpa 
.jdbc 
.meta 
.strats.RelationFieldStrategy.loadEagerJoin(RelationFieldStrategy.java: 
508)
	at  
org 
.apache.openjpa.jdbc.meta.FieldMapping.loadEagerJoin(FieldMapping.java: 
783)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:825)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
	at  
org 
.apache 
.openjpa 
.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java: 
255)
	at  
org 
.apache 
.openjpa 
.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java: 
111)
	at  
org 
.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java: 
57)
	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
	at  
org 
.apache 
.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
	at  
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:257)
	at org.apache.openjpa.jdbc.sql.SelectImpl 
$SelectResult.load(SelectImpl.java:2168)
	at  
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:251)
	at  
org 
.apache 
.openjpa 
.jdbc 
.kernel 
.InstanceResultObjectProvider 
.getResultObject(InstanceResultObjectProvider.java:59)
	at  
org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java: 
36)
	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1223)
	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
	at  
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java: 
533)
	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:235)
	at  
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java: 
277)
	at com.joost.util.ListRange.query(ListRange.java:104)
	at com.joost.util.ListRange.query(ListRange.java:127)
	at  
com 
.joost 
.service 
.impl 
.AbstractROAssetManager 
.loadByDamNotDeleted(AbstractROAssetManager.java:94)
	at  
com 
.theveniceproject 
.cow 
.shipper 
.server 
.ShipperProtocolHandlerImpl.listVideos(ShipperProtocolHandlerImpl.java: 
128)
	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at  
org 
.springframework 
.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
	at  
org 
.springframework 
.aop 
.framework 
.ReflectiveMethodInvocation 
.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
	at  
org 
.springframework 
.aop 
.framework 
.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
	at  
org 
.springframework 
.transaction 
.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java: 
107)
	at  
org 
.springframework 
.aop 
.framework 
.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
	at  
org 
.springframework 
.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)


Re: problems w/ loading

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

On Jan 29, 2008, at 8:57 AM, Geir Magnusson Jr. wrote:

>
> On Jan 29, 2008, at 4:35 PM, Craig L Russell wrote:
>
>> Hi Geir,
>>
>> No insights except for the possibility that the enhancement is out  
>> of sync with the class definition or mapping.
>
> How can that happen?  We don't do any "external" mapping via XML -  
> it's all via annotations in the code.
>
> We do the enhancement at build time, so the jar that anyone uses is  
> already enhanced.  And I'm *pretty* sure that there's only one jar  
> per webapp.

So the AbstractControlledListItem is a @MappedSuperclass? And the  
LanguageCode is @Entity?

The only thing I can think of is that the class was enhanced wrong.  
Can you post a javap -c dump of the enhanced classes with the  
extraneous stuff removed (I assume it's proprietary). There might be a  
clue where the mismatch occurred.

Craig
>
>
>>
>>
>> The stack trace says you're doing a query and populating the  
>> results of the query into the persistent instances. There is a  
>> field that the runtime thinks is a String but the instance is  
>> enhanced so the field is not a String.
>
> Here's the class w/ irrelevant/transient stuff removed :
>
> @DataTransferObject
> public class LanguageCode extends AbstractControlledListItem  
> implements Serializable {
>
>    @RemoteProperty
>    private String rfc4646tag;
>
>    @Column(name = "rfc4646tag", nullable = false, length = 11)
>    public String getRfc4646tag() {
>        return rfc4646tag;
>    }
>
>    public void setRfc4646tag(String rfc4646tag) {
>        this.rfc4646tag = rfc4646tag;
>    }
> }
>
> and the base class :
>
> public abstract class AbstractControlledListItem implements  
> ControlledListItem {
>
>    @RemoteProperty
>    private int code;
>
>    @RemoteProperty
>    protected String comment;
>
>    /** Unknown code */
>    public static final int Unknown = 1;
>    /** No code */
>    public static final int None = 2;
>
>    protected AbstractControlledListItem() {}
>
>    public AbstractControlledListItem(int code) {
>        this.code = code;
>    }
>
>    @Id
>    public int getCode() {
>        return code;
>    }
>
>    public void setCode(int code) {
>        this.code = code;
>    }
>
>    @Column(name = "comment_")
>    public String getComment() {
>        return comment;
>    }
>
>    public void setComment(String comment) {
>        this.comment = comment;
>    }
> }
>
>>
>
>> Do you always enhance dynamically?
>
> No - we enhance at build time.
>
>> Is there a chance the field type has changed? Did you change a  
>> superclass and not enhance the subclass again? (Actually, if this  
>> is the case, please file a bug; you should be able to enhance  
>> subclasses and superclasses separately).
>
> We're pretty primitive in how we do this - we enhance as part of the  
> build, so I can't see how we can get any "separation" between  
> things...
>
> thx
>
> geir
>
>>
>>
>> Craig
>>
>> On Jan 29, 2008, at 8:09 AM, Geir Magnusson Jr. wrote:
>>
>>> As a followup to yesterday...
>>>
>>> We're still having problems.  The bug seems to move around  
>>> depending on data.  We see it in 1.0.0 and we don't see it 1.0.1,  
>>> but because it's a random, intermittent thing that seems to be  
>>> data dependent, I'm hoping that the following gives someone an  
>>> "aha!" and you can assure me that you know what it is, and that  
>>> it's fixed in 1.0.1 :)
>>>
>>> Thanks.  stacktrace follows :
>>>
>>> Caused by: java.lang.IllegalArgumentException
>>> 	at  
>>> com.joost.model.codes.LanguageCode.pcReplaceField(LanguageCode.java)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .kernel.StateManagerImpl.replaceField(StateManagerImpl.java:2971)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .kernel.StateManagerImpl.storeStringField(StateManagerImpl.java: 
>>> 2455)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.kernel.StateManagerImpl.storeString(StateManagerImpl.java: 
>>> 2446)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc 
>>> .meta.strats.StringFieldStrategy.load(StringFieldStrategy.java:155)
>>> 	at  
>>> org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java: 
>>> 789)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 833)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 785)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc 
>>> .kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .kernel 
>>> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
>>> 	at  
>>> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
>>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
>>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 776)
>>> 	at  
>>> org 
>>> .apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>>> 257)
>>> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
>>> $SelectResult.load(SelectImpl.java:2168)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc 
>>> .meta 
>>> .strats 
>>> .RelationFieldStrategy.loadEagerJoin(RelationFieldStrategy.java:508)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.meta.FieldMapping.loadEagerJoin(FieldMapping.java:783)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 825)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 785)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc 
>>> .kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .kernel 
>>> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
>>> 	at  
>>> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
>>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
>>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java: 
>>> 776)
>>> 	at  
>>> org 
>>> .apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>>> 257)
>>> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
>>> $SelectResult.load(SelectImpl.java:2168)
>>> 	at  
>>> org 
>>> .apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>>> 251)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa 
>>> .jdbc 
>>> .kernel 
>>> .InstanceResultObjectProvider 
>>> .getResultObject(InstanceResultObjectProvider.java:59)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
>>> 	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java: 
>>> 1223)
>>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
>>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
>>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
>>> 	at  
>>> org 
>>> .apache 
>>> .openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:533)
>>> 	at  
>>> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:235)
>>> 	at  
>>> org 
>>> .apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java: 
>>> 277)
>>> 	at com.joost.util.ListRange.query(ListRange.java:104)
>>> 	at com.joost.util.ListRange.query(ListRange.java:127)
>>> 	at  
>>> com 
>>> .joost 
>>> .service 
>>> .impl 
>>> .AbstractROAssetManager 
>>> .loadByDamNotDeleted(AbstractROAssetManager.java:94)
>>> 	at  
>>> com 
>>> .theveniceproject 
>>> .cow 
>>> .shipper 
>>> .server 
>>> .ShipperProtocolHandlerImpl 
>>> .listVideos(ShipperProtocolHandlerImpl.java:128)
>>> 	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
>>> 	at  
>>> sun 
>>> .reflect 
>>> .DelegatingMethodAccessorImpl 
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>> 	at java.lang.reflect.Method.invoke(Method.java:585)
>>> 	at  
>>> org 
>>> .springframework 
>>> .aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 
>>> 296)
>>> 	at  
>>> org 
>>> .springframework 
>>> .aop 
>>> .framework 
>>> .ReflectiveMethodInvocation 
>>> .invokeJoinpoint(ReflectiveMethodInvocation.java:177)
>>> 	at  
>>> org 
>>> .springframework 
>>> .aop 
>>> .framework 
>>> .ReflectiveMethodInvocation 
>>> .proceed(ReflectiveMethodInvocation.java:144)
>>> 	at  
>>> org 
>>> .springframework 
>>> .transaction 
>>> .interceptor 
>>> .TransactionInterceptor.invoke(TransactionInterceptor.java:107)
>>> 	at  
>>> org 
>>> .springframework 
>>> .aop 
>>> .framework 
>>> .ReflectiveMethodInvocation 
>>> .proceed(ReflectiveMethodInvocation.java:166)
>>> 	at  
>>> org 
>>> .springframework 
>>> .aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java: 
>>> 204)
>>>
>>
>> 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: problems w/ loading

Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
On Jan 29, 2008, at 4:35 PM, Craig L Russell wrote:

> Hi Geir,
>
> No insights except for the possibility that the enhancement is out  
> of sync with the class definition or mapping.

How can that happen?  We don't do any "external" mapping via XML -  
it's all via annotations in the code.

We do the enhancement at build time, so the jar that anyone uses is  
already enhanced.  And I'm *pretty* sure that there's only one jar per  
webapp.

>
>
> The stack trace says you're doing a query and populating the results  
> of the query into the persistent instances. There is a field that  
> the runtime thinks is a String but the instance is enhanced so the  
> field is not a String.

Here's the class w/ irrelevant/transient stuff removed :

@DataTransferObject
public class LanguageCode extends AbstractControlledListItem  
implements Serializable {

     @RemoteProperty
     private String rfc4646tag;

     @Column(name = "rfc4646tag", nullable = false, length = 11)
     public String getRfc4646tag() {
         return rfc4646tag;
     }

     public void setRfc4646tag(String rfc4646tag) {
         this.rfc4646tag = rfc4646tag;
     }
}

and the base class :

public abstract class AbstractControlledListItem implements  
ControlledListItem {

     @RemoteProperty
     private int code;

     @RemoteProperty
     protected String comment;

     /** Unknown code */
     public static final int Unknown = 1;
     /** No code */
     public static final int None = 2;

     protected AbstractControlledListItem() {}

     public AbstractControlledListItem(int code) {
         this.code = code;
     }

     @Id
     public int getCode() {
         return code;
     }

     public void setCode(int code) {
         this.code = code;
     }

     @Column(name = "comment_")
     public String getComment() {
         return comment;
     }

     public void setComment(String comment) {
         this.comment = comment;
     }
}

>

> Do you always enhance dynamically?

No - we enhance at build time.

> Is there a chance the field type has changed? Did you change a  
> superclass and not enhance the subclass again? (Actually, if this is  
> the case, please file a bug; you should be able to enhance  
> subclasses and superclasses separately).

We're pretty primitive in how we do this - we enhance as part of the  
build, so I can't see how we can get any "separation" between things...

thx

geir

>
>
> Craig
>
> On Jan 29, 2008, at 8:09 AM, Geir Magnusson Jr. wrote:
>
>> As a followup to yesterday...
>>
>> We're still having problems.  The bug seems to move around  
>> depending on data.  We see it in 1.0.0 and we don't see it 1.0.1,  
>> but because it's a random, intermittent thing that seems to be data  
>> dependent, I'm hoping that the following gives someone an "aha!"  
>> and you can assure me that you know what it is, and that it's fixed  
>> in 1.0.1 :)
>>
>> Thanks.  stacktrace follows :
>>
>> Caused by: java.lang.IllegalArgumentException
>> 	at  
>> com.joost.model.codes.LanguageCode.pcReplaceField(LanguageCode.java)
>> 	at  
>> org 
>> .apache 
>> .openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java: 
>> 2971)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .kernel.StateManagerImpl.storeStringField(StateManagerImpl.java:2455)
>> 	at  
>> org 
>> .apache 
>> .openjpa.kernel.StateManagerImpl.storeString(StateManagerImpl.java: 
>> 2446)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc.meta.strats.StringFieldStrategy.load(StringFieldStrategy.java: 
>> 155)
>> 	at  
>> org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:789)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java: 
>> 336)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .kernel 
>> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
>> 	at  
>> org 
>> .apache 
>> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
>> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java: 
>> 843)
>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
>> 	at  
>> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>> 257)
>> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
>> $SelectResult.load(SelectImpl.java:2168)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc 
>> .meta 
>> .strats 
>> .RelationFieldStrategy.loadEagerJoin(RelationFieldStrategy.java:508)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.meta.FieldMapping.loadEagerJoin(FieldMapping.java:783)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:825)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java: 
>> 336)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .kernel 
>> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
>> 	at  
>> org 
>> .apache 
>> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
>> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java: 
>> 843)
>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
>> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
>> 	at  
>> org 
>> .apache 
>> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
>> 	at  
>> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>> 257)
>> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
>> $SelectResult.load(SelectImpl.java:2168)
>> 	at  
>> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
>> 251)
>> 	at  
>> org 
>> .apache 
>> .openjpa 
>> .jdbc 
>> .kernel 
>> .InstanceResultObjectProvider 
>> .getResultObject(InstanceResultObjectProvider.java:59)
>> 	at  
>> org 
>> .apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java: 
>> 36)
>> 	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1223)
>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
>> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
>> 	at  
>> org 
>> .apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java: 
>> 533)
>> 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java: 
>> 235)
>> 	at  
>> org 
>> .apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java: 
>> 277)
>> 	at com.joost.util.ListRange.query(ListRange.java:104)
>> 	at com.joost.util.ListRange.query(ListRange.java:127)
>> 	at  
>> com 
>> .joost 
>> .service 
>> .impl 
>> .AbstractROAssetManager 
>> .loadByDamNotDeleted(AbstractROAssetManager.java:94)
>> 	at  
>> com 
>> .theveniceproject 
>> .cow 
>> .shipper 
>> .server 
>> .ShipperProtocolHandlerImpl 
>> .listVideos(ShipperProtocolHandlerImpl.java:128)
>> 	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
>> 	at  
>> sun 
>> .reflect 
>> .DelegatingMethodAccessorImpl 
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>> 	at java.lang.reflect.Method.invoke(Method.java:585)
>> 	at  
>> org 
>> .springframework 
>> .aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 
>> 296)
>> 	at  
>> org 
>> .springframework 
>> .aop 
>> .framework 
>> .ReflectiveMethodInvocation 
>> .invokeJoinpoint(ReflectiveMethodInvocation.java:177)
>> 	at  
>> org 
>> .springframework 
>> .aop 
>> .framework 
>> .ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 
>> 144)
>> 	at  
>> org 
>> .springframework 
>> .transaction 
>> .interceptor 
>> .TransactionInterceptor.invoke(TransactionInterceptor.java:107)
>> 	at  
>> org 
>> .springframework 
>> .aop 
>> .framework 
>> .ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 
>> 166)
>> 	at  
>> org 
>> .springframework 
>> .aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>>
>
> 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: problems w/ loading

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

No insights except for the possibility that the enhancement is out of  
sync with the class definition or mapping.

The stack trace says you're doing a query and populating the results  
of the query into the persistent instances. There is a field that the  
runtime thinks is a String but the instance is enhanced so the field  
is not a String.

Do you always enhance dynamically? Is there a chance the field type  
has changed? Did you change a superclass and not enhance the subclass  
again? (Actually, if this is the case, please file a bug; you should  
be able to enhance subclasses and superclasses separately).

Craig

On Jan 29, 2008, at 8:09 AM, Geir Magnusson Jr. wrote:

> As a followup to yesterday...
>
> We're still having problems.  The bug seems to move around depending  
> on data.  We see it in 1.0.0 and we don't see it 1.0.1, but because  
> it's a random, intermittent thing that seems to be data dependent,  
> I'm hoping that the following gives someone an "aha!" and you can  
> assure me that you know what it is, and that it's fixed in 1.0.1 :)
>
> Thanks.  stacktrace follows :
>
> Caused by: java.lang.IllegalArgumentException
> 	at  
> com.joost.model.codes.LanguageCode.pcReplaceField(LanguageCode.java)
> 	at  
> org 
> .apache 
> .openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java: 
> 2971)
> 	at  
> org 
> .apache 
> .openjpa 
> .kernel.StateManagerImpl.storeStringField(StateManagerImpl.java:2455)
> 	at  
> org 
> .apache 
> .openjpa.kernel.StateManagerImpl.storeString(StateManagerImpl.java: 
> 2446)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc.meta.strats.StringFieldStrategy.load(StringFieldStrategy.java: 
> 155)
> 	at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java: 
> 789)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java: 
> 336)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
> 	at  
> org 
> .apache 
> .openjpa 
> .kernel 
> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
> 	at  
> org 
> .apache 
> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java: 
> 843)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
> 	at  
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
> 257)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
> $SelectResult.load(SelectImpl.java:2168)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc 
> .meta 
> .strats 
> .RelationFieldStrategy.loadEagerJoin(RelationFieldStrategy.java:508)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.meta.FieldMapping.loadEagerJoin(FieldMapping.java:783)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:825)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java: 
> 336)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
> 	at  
> org 
> .apache 
> .openjpa 
> .kernel 
> .DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
> 	at  
> org 
> .apache 
> .openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java: 
> 843)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
> 	at  
> org 
> .apache 
> .openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
> 	at  
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
> 257)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl 
> $SelectResult.load(SelectImpl.java:2168)
> 	at  
> org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java: 
> 251)
> 	at  
> org 
> .apache 
> .openjpa 
> .jdbc 
> .kernel 
> .InstanceResultObjectProvider 
> .getResultObject(InstanceResultObjectProvider.java:59)
> 	at  
> org 
> .apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java: 
> 36)
> 	at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1223)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
> 	at  
> org 
> .apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java: 
> 533)
> 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java: 
> 235)
> 	at  
> org 
> .apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java: 
> 277)
> 	at com.joost.util.ListRange.query(ListRange.java:104)
> 	at com.joost.util.ListRange.query(ListRange.java:127)
> 	at  
> com 
> .joost 
> .service 
> .impl 
> .AbstractROAssetManager 
> .loadByDamNotDeleted(AbstractROAssetManager.java:94)
> 	at  
> com 
> .theveniceproject 
> .cow 
> .shipper 
> .server 
> .ShipperProtocolHandlerImpl 
> .listVideos(ShipperProtocolHandlerImpl.java:128)
> 	at sun.reflect.GeneratedMethodAccessor84.invoke(Unknown Source)
> 	at  
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at  
> org 
> .springframework 
> .aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 
> 296)
> 	at  
> org 
> .springframework 
> .aop 
> .framework 
> .ReflectiveMethodInvocation 
> .invokeJoinpoint(ReflectiveMethodInvocation.java:177)
> 	at  
> org 
> .springframework 
> .aop 
> .framework 
> .ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 
> 144)
> 	at  
> org 
> .springframework 
> .transaction 
> .interceptor 
> .TransactionInterceptor.invoke(TransactionInterceptor.java:107)
> 	at  
> org 
> .springframework 
> .aop 
> .framework 
> .ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 
> 166)
> 	at  
> org 
> .springframework 
> .aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>

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!