Skip to main content

[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.



Back to the top