FW: Starting OpenMRS 1.9 with Html Form Entry module

classic Classic list List threaded Threaded
2 messages Options
Mark Goodrich-2 Mark Goodrich-2
Reply | Threaded
Open this post in threaded view
|

FW: Starting OpenMRS 1.9 with Html Form Entry module

Rafal & Darius—

I meant to cc this to the dev list, but I guess I forgot.

Fwiw, here is a little bit about what writeReplace does:

A proxy object generated by ProxyFactory is serializable if its super class or any of its interfaces implement java.io.Serializable. However, a serialized proxy object may not be compatible with future releases. The serialization support should be used for short-term storage or RMI.

For compatibility with older releases serialization of proxy objects is implemented by adding a writeReplace method to the proxy class. This allows a proxy to be serialized to a conventional ObjectOutputStream and deserialized from a correspondingObjectInputStream. However this method suffers from several problems, the most notable one being that it fails to serialize state inherited from the proxy's superclass.

Do you guys want me to enter a ticket for this?

 

Mark

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Rafal Korytkowski
Sent: Wednesday, April 18, 2012 6:50 AM
To: Mark Goodrich
Cc: Darius Jazayeri
Subject: Re: Starting OpenMRS 1.9 with Html Form Entry module

 

I confirmed that upgrading javassist to 3.16.1-GA doesn't help.

 

I also wasn't able to switch back to cglib by adding "hibernate.bytecode.provider=cglib" to hibernate.default.properties as suggested here:  https://hibernate.onjira.com/browse/HHH-1938 

Hibernate still used javassist for some reason.

 

Unfortunately using a different method isn't that simple, because writeReplace is hardcoded in XStream in  http://www.docjar.com/html/api/com/thoughtworks/xstream/converters/reflection/SerializationMethodInvoker.java.html 

Maybe, it's possible to replace SerializationMethodInvoker with a custom class. I didn't use much time to look closely at the code to see if it's possible without having a custom XStream build.

Anyway, I haven't noticed any problems while using htmlform 1.9.2 with trunk. Also MDS calls writeReplace and replaces ids with uuids. The error seems not to cause any harm, but it definitely needs further investigation.

 

-Rafał

On 18 April 2012 09:56, Rafal Korytkowski <[hidden email]> wrote:

Hi,

 

It's because we've upgraded Hibernate and apparently changed from cglib to javassist proxies (https://hibernate.onjira.com/browse/HHH-2506).

 

It appears that javassist wants its own writeReplace method, which it fails to create as it's defined already. Quick googling shows that many people just upgrade javassist (that may not help in our case, but it's worth trying) or switch back to cglib proxies to resolve similar issues. I'll investigate further if we can simply use a different method in MDS, but it also depends on the ability to customize it in XStream.


-Rafał

 

On 17 April 2012 22:38, Mark Goodrich <[hidden email]> wrote:

Rafal & Darius,

 

We’re seeing the following error when starting Html Form Entry with Openmrs 1.9.  The module still appears to start correctly.  “writeReplace” is the method that allows MDS to share the Html Forms.  Any idea if this is something we should be worried about?

 

INFO - LocalSessionFactoryBean.buildSessionFactory(777) |2012-04-17 16:14:44,663| Building new Hibernate SessionFactory

ERROR - JavassistLazyInitializer.getProxyFactory(165) |2012-04-17 16:14:44,927| Javassist Enhancement failed: org.openmrs.module.htmlformentry.HtmlForm

java.lang.RuntimeException: duplicate method: writeReplace in org.openmrs.module.htmlformentry.HtmlForm_$$_javassist_84

                at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:509)

                at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)

                at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)

                at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)

                at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162)

                at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)

                at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185)

                at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)

                at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)

                at sun.reflect.GeneratedConstructorAccessor56.newInstance(Unknown Source)

                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:105)

                at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)

                at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)

                at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)

                at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)

                at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)

                at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)

                at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)

                at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

                at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)

                at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)

                at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)

                at org.openmrs.api.db.hibernate.HibernateSessionFactoryBean.afterPropertiesSet(HibernateSessionFactoryBean.java:148)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

                at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:86)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:86)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)

                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)

                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1426)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

                at org.springframework.context.support.AbstractApplicationContext.initMessageSource(AbstractApplicationContext.java:755)

                at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:413)

                at org.openmrs.module.ModuleUtil.refreshApplicationContext(ModuleUtil.java:780)

                at org.openmrs.module.web.WebModuleUtil.refreshWAC(WebModuleUtil.java:825)

                at org.openmrs.web.Listener.performWebStartOfModules(Listener.java:587)

                at org.openmrs.web.Listener.startOpenmrs(Listener.java:230)

                at org.openmrs.web.WebDaemon$1.run(WebDaemon.java:44)

Caused by: javassist.bytecode.DuplicateMemberException: duplicate method: writeReplace in org.openmrs.module.htmlformentry.HtmlForm_$$_javassist_84

                at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:637)

                at javassist.bytecode.ClassFile.addMethod(ClassFile.java:613)

                at javassist.util.proxy.ProxyFactory.override(ProxyFactory.java:941)

                at javassist.util.proxy.ProxyFactory.overrideMethods(ProxyFactory.java:913)

                at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:714)

                at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:497)

                ... 93 more

 

 

Ben Wolfe (openmrs) Ben Wolfe (openmrs)
Reply | Threaded
Open this post in threaded view
|

Re: FW: Starting OpenMRS 1.9 with Html Form Entry module

Were you putting hibernate.bytecode.provider=cglib into your runtime properties?  All runtime properties are also passed to hibernate during its startup so that you can specify things like this.

Ben

On Wed, Apr 18, 2012 at 12:37 PM, Mark Goodrich <[hidden email]> wrote:

Rafal & Darius—

I meant to cc this to the dev list, but I guess I forgot.

Fwiw, here is a little bit about what writeReplace does:

A proxy object generated by ProxyFactory is serializable if its super class or any of its interfaces implement java.io.Serializable. However, a serialized proxy object may not be compatible with future releases. The serialization support should be used for short-term storage or RMI.

For compatibility with older releases serialization of proxy objects is implemented by adding a writeReplace method to the proxy class. This allows a proxy to be serialized to a conventional ObjectOutputStream and deserialized from a correspondingObjectInputStream. However this method suffers from several problems, the most notable one being that it fails to serialize state inherited from the proxy's superclass.

Do you guys want me to enter a ticket for this?

 

Mark

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Rafal Korytkowski
Sent: Wednesday, April 18, 2012 6:50 AM
To: Mark Goodrich
Cc: Darius Jazayeri
Subject: Re: Starting OpenMRS 1.9 with Html Form Entry module

 

I confirmed that upgrading javassist to 3.16.1-GA doesn't help.

 

I also wasn't able to switch back to cglib by adding "hibernate.bytecode.provider=cglib" to hibernate.default.properties as suggested here:  https://hibernate.onjira.com/browse/HHH-1938 

Hibernate still used javassist for some reason.

 

Unfortunately using a different method isn't that simple, because writeReplace is hardcoded in XStream in  http://www.docjar.com/html/api/com/thoughtworks/xstream/converters/reflection/SerializationMethodInvoker.java.html 

Maybe, it's possible to replace SerializationMethodInvoker with a custom class. I didn't use much time to look closely at the code to see if it's possible without having a custom XStream build.

Anyway, I haven't noticed any problems while using htmlform 1.9.2 with trunk. Also MDS calls writeReplace and replaces ids with uuids. The error seems not to cause any harm, but it definitely needs further investigation.

 

-Rafał

On 18 April 2012 09:56, Rafal Korytkowski <[hidden email]> wrote:

Hi,

 

It's because we've upgraded Hibernate and apparently changed from cglib to javassist proxies (https://hibernate.onjira.com/browse/HHH-2506).

 

It appears that javassist wants its own writeReplace method, which it fails to create as it's defined already. Quick googling shows that many people just upgrade javassist (that may not help in our case, but it's worth trying) or switch back to cglib proxies to resolve similar issues. I'll investigate further if we can simply use a different method in MDS, but it also depends on the ability to customize it in XStream.


-Rafał

 

On 17 April 2012 22:38, Mark Goodrich <[hidden email]> wrote:

Rafal & Darius,

 

We’re seeing the following error when starting Html Form Entry with Openmrs 1.9.  The module still appears to start correctly.  “writeReplace” is the method that allows MDS to share the Html Forms.  Any idea if this is something we should be worried about?

 

INFO - LocalSessionFactoryBean.buildSessionFactory(777) |2012-04-17 16:14:44,663| Building new Hibernate SessionFactory

ERROR - JavassistLazyInitializer.getProxyFactory(165) |2012-04-17 16:14:44,927| Javassist Enhancement failed: org.openmrs.module.htmlformentry.HtmlForm

java.lang.RuntimeException: duplicate method: writeReplace in org.openmrs.module.htmlformentry.HtmlForm_$$_javassist_84

                at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:509)

                at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)

                at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)

                at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)

                at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162)

                at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)

                at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185)

                at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)

                at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)

                at sun.reflect.GeneratedConstructorAccessor56.newInstance(Unknown Source)

                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:105)

                at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)

                at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)

                at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)

                at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)

                at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)

                at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)

                at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)

                at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)

                at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)

                at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)

                at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)

                at org.openmrs.api.db.hibernate.HibernateSessionFactoryBean.afterPropertiesSet(HibernateSessionFactoryBean.java:148)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

                at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:86)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:86)

                at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:68)

                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:359)

                at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1426)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

                at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

                at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)

                at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

                at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)

                at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

                at org.springframework.context.support.AbstractApplicationContext.initMessageSource(AbstractApplicationContext.java:755)

                at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:413)

                at org.openmrs.module.ModuleUtil.refreshApplicationContext(ModuleUtil.java:780)

                at org.openmrs.module.web.WebModuleUtil.refreshWAC(WebModuleUtil.java:825)

                at org.openmrs.web.Listener.performWebStartOfModules(Listener.java:587)

                at org.openmrs.web.Listener.startOpenmrs(Listener.java:230)

                at org.openmrs.web.WebDaemon$1.run(WebDaemon.java:44)

Caused by: javassist.bytecode.DuplicateMemberException: duplicate method: writeReplace in org.openmrs.module.htmlformentry.HtmlForm_$$_javassist_84

                at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:637)

                at javassist.bytecode.ClassFile.addMethod(ClassFile.java:613)

                at javassist.util.proxy.ProxyFactory.override(ProxyFactory.java:941)

                at javassist.util.proxy.ProxyFactory.overrideMethods(ProxyFactory.java:913)

                at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:714)

                at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:497)

                ... 93 more

 

 



[hidden email] from OpenMRS Developers' mailing list