[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] enum access cast issue
|
Where does the verbForms come from? If one cases works, and the other does
not, then there must be something different, or does it occur randomly? Can
yo isolate a test that recreates the issue.
Print the verbForms directly after reading the object, perhaps also print or
put a breakpoint in the set method to see when a collection of strings is
set.
drrevis wrote:
>
> Hi James,
>
> I keep hitting this problem in slightly different ways as I'm trying to
> use the code and really need to figure out a way around it. I know I
> should be able to store a list of enums like this with JPA 2.0 so it seems
> like this may be a bug. Do you think I should just give up for now, store
> it as a list of strings and convert to a list of enums on the fly using a
> transient field? Any other suggestions?
>
> Renee
>
>
>
> drrevis wrote:
>>
>> Hi James,
>>
>> The code where it works and where it fails is exactly the same. The
>> offending line (with associated logging) is from the predicate object:
>>
>> logger.info("calling addAuxVerbs, index: " + verbFormIndex);
>> logger.info("verbForm: " + verbForms.get(verbFormIndex));
>> logger.info("class: " + verbForms.get(verbFormIndex).getClass());
>> addAuxVerbs(sentence, sentencePredicate,
>> verbForms.get(verbFormIndex));
>> logger.info("no cast issues w/addAuxVerbs");
>>
>>
>> And here is a portion of the predicate object definition:
>>
>> public class Predicate implements Serializable {
>>
>> @Id
>> @GeneratedValue(strategy = GenerationType.TABLE, generator =
>> "predicateIDGen")
>> private Long itemID;
>> private String name;
>> @ManyToOne
>> private SentenceGroup sentenceGroup;
>> private PredicatePattern pattern = PredicatePattern.CLAUSE_VI;
>> @OneToOne
>> private Verb verb1;
>> @OneToOne
>> private Verb verb2;
>> @ElementCollection
>> @Enumerated(EnumType.ORDINAL)
>> private List<VerbForm> verbForms;
>>
>> etc. ......
>>
>>
>>
>>
>> The logs that are generated in the successful case are:
>>
>> -------------------
>> [#|2010-05-04T11:28:13.463-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|calling
>> addAuxVerbs, index: 0|#]
>>
>> [#|2010-05-04T11:28:13.466-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|verbForm:
>> ED|#]
>>
>> [#|2010-05-04T11:28:13.466-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|class:
>> class com.leadingstep.grammardb.verbs.VerbForm|#]
>>
>> [#|2010-05-04T11:28:13.466-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|no
>> cast issues w/addAuxVerbs|#]
>> -------------------
>>
>>
>> Then in the failed case, the logs are:
>>
>> -------------------
>>
>> [#|2010-05-04T11:31:03.626-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|calling
>> addAuxVerbs, index: 0|#]
>>
>> [#|2010-05-04T11:31:03.626-0400|INFO|glassfishv3.0|com.leadingstep.grammardb.sentences|_ThreadID=35;_ThreadName=Thread-1;|verbForm:
>> ED|#]
>>
>> [#|2010-05-04T11:31:03.626-0400|WARNING|glassfishv3.0|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=35;_ThreadName=Thread-1;|A
>> system exception occurred during an invocation on EJB GrammarDBBean
>> method public java.util.List
>> com.leadingstep.grammardb.beans.GrammarDBBean.fetchAllModifiedNounValues(com.leadingstep.grammardb.nouns.ModifiedNoun)
>> javax.ejb.EJBException
>> at
>> com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070)
>>
>> <snip>
>>
>> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast
>> to com.leadingstep.grammardb.verbs.VerbForm
>> at
>> com.leadingstep.grammardb.sentences.Predicate.fetchValue(Predicate.java:1061)
>>
>> -------------------
>>
>>
>> The particular predicate object that I'm accessing is the same in both
>> the successful and failed cases and the verbForms list is not updated
>> between the two accesses. The logs show that the index it is using is
>> the same in both cases and the value of the particular verbForm is the
>> same, but when I try to access the class, I get the error. (Note that
>> when the logging stmt is removed, I get this same error at the
>> addAuxVerbs line).
>>
>>
>> I know that the system initially sees the verbForm list as being a list
>> of VerbForm enums from this log:
>>
>> [#|2010-05-04T11:19:56.388-0400|CONFIG|glassfishv3.0|org.eclipse.persistence.session.file:/Users/renee/Documents/workspace_LeadingStep/.metadata/.plugins/com.sun.enterprise.jst.server.sunappsrv92/domain1/eclipseApps/LS_Mgmt_App/GrammarElement_EJB_jar/_GrammarElement_EJB.ejb_or_metadata|_ThreadID=26;_ThreadName=Thread-1;|The
>> target class (reference) class for the element collection mapping element
>> [field verbForms] is being defaulted to: class
>> com.leadingstep.grammardb.verbs.VerbForm.|#]
>>
>>
>> I hope this is enough info to demonstrate the problem. I'm happy to do
>> whatever else I can to narrow down the underlying issue, but I just don't
>> know what else to look at.
>>
>> Renee
>>
>>
>>
>> James Sutherland wrote:
>>>
>>> I don't seem to be able to see you attachments. Perhaps inline them, or
>>> provide a link.
>>>
>>> Also include the code for the classes where it works, and where it does
>>> not.
>>>
>>>
>>
>>
>
>
-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
http://www.eclipse.org/eclipselink/
EclipseLink , http://www.oracle.com/technology/products/ias/toplink/
TopLink
Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink ,
http://wiki.oracle.com/page/TopLink TopLink
Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
http://www.nabble.com/EclipseLink-f26430.html EclipseLink
Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
--
View this message in context: http://old.nabble.com/enum-access-cast-issue-tp28350990p28524106.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.