Error on startup with inherited model

74 views
Skip to first unread message

Alex

unread,
Jan 25, 2010, 6:44:59 AM1/25/10
to play-framework
I am using single table model inheritance. When I start the
application I get this error. Everything seems to work correctly (so
far) regardless, but it's obviously concerning.

03:36:33,488 ERROR ~ Javassist Enhancement failed:
models.UserFundraiserRole
java.lang.RuntimeException: duplicate method: getEntity in
models.UserFundraiserRole_$$_javassist_8
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:
344)
at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:
314)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:
273)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory
(JavassistLazyInitializer.java:162)
at
org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate
(JavassistProxyFactory.java:66)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory
(PojoEntityTuplizer.java:188)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>
(AbstractEntityTuplizer.java:151)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>
(PojoEntityTuplizer.java:78)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance
(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer
(EntityTuplizerFactory.java:107)
at
org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer
(EntityTuplizerFactory.java:135)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>
(EntityEntityModeToTuplizerMapping.java:80)
at org.hibernate.tuple.entity.EntityMetamodel.<init>
(EntityMetamodel.java:323)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>
(AbstractEntityPersister.java:456)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>
(SingleTableEntityPersister.java:131)
at org.hibernate.persister.PersisterFactory.createClassPersister
(PersisterFactory.java:84)
at org.hibernate.impl.SessionFactoryImpl.<init>
(SessionFactoryImpl.java:267)
at org.hibernate.cfg.Configuration.buildSessionFactory
(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory
(AnnotationConfiguration.java:867)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory
(Ejb3Configuration.java:669)
at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:157)
at play.Play.start(Play.java:359)
at play.Play.detectChanges(Play.java:451)
at play.Invoker$Invocation.init(Invoker.java:98)
at play.server.HttpHandler$MinaInvocation.init(HttpHandler.java:437)
at play.Invoker$Invocation.run(Invoker.java:174)
at play.server.HttpHandler$MinaInvocation.run(HttpHandler.java:461)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
Caused by: javassist.bytecode.DuplicateMemberException: duplicate
method: getEntity in models.UserFundraiserRole_$$_javassist_8
at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:
593)
at javassist.bytecode.ClassFile.addMethod(ClassFile.java:577)
at javassist.util.proxy.ProxyFactory.override(ProxyFactory.java:658)
at javassist.util.proxy.ProxyFactory.overrideMethods
(ProxyFactory.java:632)
at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:552)
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:
335)
... 37 more
03:36:33,533 WARN ~ could not create proxy factory
for:models.UserFundraiserRole
org.hibernate.HibernateException: Javassist Enhancement failed:
models.UserFundraiserRole
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory
(JavassistLazyInitializer.java:169)
at
org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate
(JavassistProxyFactory.java:66)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory
(PojoEntityTuplizer.java:188)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>
(AbstractEntityTuplizer.java:151)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>
(PojoEntityTuplizer.java:78)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance
(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer
(EntityTuplizerFactory.java:107)
at
org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer
(EntityTuplizerFactory.java:135)
at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>
(EntityEntityModeToTuplizerMapping.java:80)
at org.hibernate.tuple.entity.EntityMetamodel.<init>
(EntityMetamodel.java:323)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>
(AbstractEntityPersister.java:456)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>
(SingleTableEntityPersister.java:131)
at org.hibernate.persister.PersisterFactory.createClassPersister
(PersisterFactory.java:84)
at org.hibernate.impl.SessionFactoryImpl.<init>
(SessionFactoryImpl.java:267)
at org.hibernate.cfg.Configuration.buildSessionFactory
(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory
(AnnotationConfiguration.java:867)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory
(Ejb3Configuration.java:669)
at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:157)
at play.Play.start(Play.java:359)
at play.Play.detectChanges(Play.java:451)
at play.Invoker$Invocation.init(Invoker.java:98)
at play.server.HttpHandler$MinaInvocation.init(HttpHandler.java:437)
at play.Invoker$Invocation.run(Invoker.java:174)
at play.server.HttpHandler$MinaInvocation.run(HttpHandler.java:461)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.RuntimeException: duplicate method: getEntity in
models.UserFundraiserRole_$$_javassist_8
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:
344)
at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:
314)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:
273)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory
(JavassistLazyInitializer.java:162)
... 34 more
Caused by: javassist.bytecode.DuplicateMemberException: duplicate
method: getEntity in models.UserFundraiserRole_$$_javassist_8
at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:
593)
at javassist.bytecode.ClassFile.addMethod(ClassFile.java:577)
at javassist.util.proxy.ProxyFactory.override(ProxyFactory.java:658)
at javassist.util.proxy.ProxyFactory.overrideMethods
(ProxyFactory.java:632)
at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:552)
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:
335)

Guillaume Bort

unread,
Jan 25, 2010, 7:44:35 AM1/25/10
to play-fr...@googlegroups.com
Ok. Can you send me a simple test case that reproduce the problem ?

> --
> You received this message because you are subscribed to the Google Groups "play-framework" group.
> To post to this group, send email to play-fr...@googlegroups.com.
> To unsubscribe from this group, send email to play-framewor...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/play-framework?hl=en.
>
>

Guillaume Bort

unread,
Jan 25, 2010, 1:20:24 PM1/25/10
to play-fr...@googlegroups.com
Ok I guess that entity is a reserved field for Hibernate. Try to name
your field with another name.

Alex Neth

unread,
Jan 25, 2010, 6:15:29 PM1/25/10
to play-fr...@googlegroups.com, play-fr...@googlegroups.com
Thanks. Should have thought of that! entity, getEntity....duh.

Runtime weirdness is why I've been running away from rails, so I'm
used to it. ;)

Java helps enormously but magic always eventually causes hiccups.
Maybe add a list of reserved words and appropriate exceptions to save
others?

Great work on play. Looking forward to scala support.

Sent from my iPhone

On Jan 25, 2010, at 10:20 AM, Guillaume Bort
<guillau...@gmail.com> wrote:

>>> (JavassistLazyInitializer.java:162)
>>> at
>>> org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate

>>> (JavassistLazyInitializer.java:169)
>>> at
>>> org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate

>>> 593)
>>> at javassist.bytecode.ClassFile.addMethod(ClassFile.java:577)
>>> at javassist.util.proxy.ProxyFactory.override
>>> (ProxyFactory.java:658)
>>> at javassist.util.proxy.ProxyFactory.overrideMethods
>>> (ProxyFactory.java:632)
>>> at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:
>>> 552)
>>> at javassist.util.proxy.ProxyFactory.createClass3
>>> (ProxyFactory.java:

>>> 335)
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "play-framework" group.
>>> To post to this group, send email to play-

>>> fram...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages