Vasil - 

It appears to work for me on trunk, can you give that a shot?

-Rick

Vasil wrote:
> 
> Hi
> 
> I have the following entity:
> 
> @Entity
> @Table(name = "accounts_userfavorites")
> public class UserFavorite implements Serializable{
> 
>       private static final long serialVersionUID = 7233246222509313691L;
> 
>       @Id
>       @GeneratedValue(strategy=GenerationType.IDENTITY)
>       private long id;
>       
>       @Column(nullable = false)
>       private String channelName;
>       
>       @Column(nullable = true)
>       private String name;
>       
>       @Column(nullable = true)
>       private Date startTime;
>       
>       @Column(nullable = false)
>       private Date timeAdded = new Date();
>       
>       public enum Type {
>               CHANNEL,
>               PROGRAMME,
>               SERIES;
>       }
> 
>       
>       @Enumerated(EnumType.ORDINAL)
>       @Column(nullable = false)
>       private Type type;
>       
>     @ManyToOne(optional=false)
>     @JoinColumn(name="user_account_id",referencedColumnName="id", nullable
> = false)
>     private UserAccount userAccount;
> 
>       public long getId() {
>               return id;
>       }
> 
>       public void setId(long id) {
>               this.id = id;
>       }
> 
>       public String getChannelName() {
>               return channelName;
>       }
> 
>       public void setChannelName(String channelName) {
>               this.channelName = channelName;
>       }
> 
>       public String getName() {
>               return name;
>       }
> 
>       public void setName(String name) {
>               this.name = name;
>       }
> 
>       public Date getStartTime() {
>               return startTime;
>       }
> 
>       public void setStartTime(Date startTime) {
>               this.startTime = startTime;
>       }
> 
>       public Date getTimeAdded() {
>               return timeAdded;
>       }
> 
>       public void setTimeAdded(Date timeAdded) {
>               this.timeAdded = timeAdded;
>       }
> 
>       public Type getType() {
>               return type;
>       }
> 
>       public void setType(Type type) {
>               this.type = type;
>       }
> 
>       public UserAccount getUserAccount() {
>               return userAccount;
>       }
> 
>       public void setUserAccount(UserAccount userAccount) {
>               this.userAccount = userAccount;
>       }
>       
> }
> 
> however when I try to enhance it I get the following error:
> 
> java.lang.NoClassDefFoundError: Lmk/zulu/entities/UserFavorite$Type;
>       at java.lang.Class.getDeclaredFields0(Native Method)
>       at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
>       at java.lang.Class.getDeclaredFields(Class.java:1715)
>       at
> org.apache.openjpa.lib.util.J2DoPrivHelper$7.run(J2DoPrivHelper.java:270)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:262)
>       at
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.getAccessType(PersistenceMetaDataDefaults.java:250)
>       at
> org.apache.openjpa.meta.AbstractMetaDataDefaults.populate(AbstractMetaDataDefaults.java:155)
>       at
> org.apache.openjpa.persistence.PersistenceMetaDataDefaults.populate(PersistenceMetaDataDefaults.java:227)
>       at
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:794)
>       at
> org.apache.openjpa.meta.MetaDataRepository.addMetaData(MetaDataRepository.java:780)
>       at
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.getMetaData(AnnotationPersistenceMetaDataParser.java:657)
>       at
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parseClassAnnotations(AnnotationPersistenceMetaDataParser.java:480)
>       at
> org.apache.openjpa.persistence.AnnotationPersistenceMetaDataParser.parse(AnnotationPersistenceMetaDataParser.java:352)
>       at
> org.apache.openjpa.persistence.PersistenceMetaDataFactory.load(PersistenceMetaDataFactory.java:229)
>       at
> org.apache.openjpa.meta.MetaDataRepository.getMetaDataInternal(MetaDataRepository.java:474)
>       at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:294)
>       at
> org.apache.openjpa.meta.ValueMetaDataImpl.resolveDeclaredType(ValueMetaDataImpl.java:431)
>       at
> org.apache.openjpa.meta.ValueMetaDataImpl.resolve(ValueMetaDataImpl.java:410)
>       at 
> org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1676)
>       at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1691)
>       at 
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626)
>       at
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
>       at
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
>       at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
>       at org.apache.openjpa.enhance.PCEnhancer.<init>(PCEnhancer.java:249)
>       at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4493)
>       at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4440)
>       at org.apache.openjpa.enhance.PCEnhancer$1.run(PCEnhancer.java:4410)
>       at
> org.apache.openjpa.lib.conf.Configurations.launchRunnable(Configurations.java:708)
>       at
> org.apache.openjpa.lib.conf.Configurations.runAgainstAllAnchors(Configurations.java:698)
>       at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4405)
>       at
> org.codehaus.mojo.openjpa.OpenJpaEnhancerMojo.enhance(OpenJpaEnhancerMojo.java:121)
>       at
> org.codehaus.mojo.openjpa.OpenJpaEnhancerMojo.execute(OpenJpaEnhancerMojo.java:86)
>       at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> 
> Clearly the type field causes the problem here. Anyone have an idea why
> this happens and how to fix it?
> I'm using openjpa 1.2.1
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/Enhancing-entities-fails-when-there-is-an-enum-field-in-the-entity-tp3077176p3086930.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to