Hi, Dan.

Thanks for pointing there.

Yes, seems that can be the concurrency issue.

I’ll contact the committer and create a local version.


Thanks a lot!





> El 16 sept 2016, a las 11:20, Dan Haywood <d...@haywood-associates.co.uk> 
> escribió:
> 
> Hi Oscar,
> 
> It looks like a concurrency bug in Javassist in 3.20.0-GA.  It's fixed in
> [1], but hasn't yet been released.
> 
> If it's a blocker, then I guess all you can do is to build a local version
> of Javassist, and the use Maven <dependencyManagement> section in your
> top-level pom.xml to reference your local version.
> 
> HTH
> Dan
> 
> [1]
> https://github.com/jboss-javassist/javassist/commit/fee5e033b303efce0cb6d9268b5361d5e1eb1974#diff-784aef550e16e266f5ecb6a3ce357fd1
> 
> 
> 
> On 23 August 2016 at 22:27, Óscar Bou - GOVERTIS <o....@govertis.com> wrote:
> 
>> Hi all.
>> 
>> I’m also experiencing a problem when javassist tries to enhance some
>> classes from inside a thread (a Quartz job), when invoked through the
>> WrapperFactory.
>> 
>> Seems that sometimes the “proxyFactory.createClass()” method invocation in
>> ProxyCreator does not return the enhanced class, returning “null” instead.
>> 
>> It occurs occasionally (in every execution), but not repeated for the same
>> class or invocation.
>> 
>> I’ve not found any difference when debugging between “correct” invocations
>> and those returning “null”.
>> 
>> Any ideas?
>> 
>> 
>> 
>> java.lang.NullPointerException at org.objenesis.ObjenesisBase.
>> getInstantiatorOf(ObjenesisBase.java:89) at org.objenesis.ObjenesisBase.
>> newInstance(ObjenesisBase.java:73) at org.objenesis.ObjenesisHelper.
>> newInstance(ObjenesisHelper.java:44) at org.apache.isis.core.wrapper.
>> internal.util.Util.createInstance(Util.java:43) at
>> org.apache.isis.core.wrapper.proxy.ProxyCreator.
>> instantiateProxy(ProxyCreator.java:67) at org.apache.isis.core.wrapper.
>> handlers.ProxyContextHandler.proxy(ProxyContextHandler.java:47) at
>> org.apache.isis.core.wrapper.WrapperFactoryDefault.createProxy(
>> WrapperFactoryDefault.java:253) at org.apache.isis.core.wrapper.
>> WrapperFactoryDefault.wrap(WrapperFactoryDefault.java:246) at
>> org.apache.isis.core.wrapper.WrapperFactoryDefault.wrap(
>> WrapperFactoryDefault.java:222) at 
>> mydom.dom.backend.mydomService.wrap(mydomService.java:11)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository.createUnprocessedNotification(
>> SupplierAnyOfferChangedNotificationRepository.java:52) at sun.reflect.
>> GeneratedMethodAccessor160.invoke(Unknown Source) at sun.reflect.
>> DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:483) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invokeMethodElseFromCache(
>> ActionInvocationFacetForDomainEventAbstract.java:408) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:262) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:1) at
>> org.apache.isis.applib.services.iactn.Interaction.
>> executeInternal(Interaction.java:173) at org.apache.isis.applib.
>> services.iactn.Interaction.execute(Interaction.java:143) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.doInvoke(
>> ActionInvocationFacetForDomainEventAbstract.java:311) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$1.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:165) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:143) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:133) at
>> org.apache.isis.core.runtime.services.persistsession.
>> PersistenceSessionServiceInternalDefault.executeWithinTransaction(
>> PersistenceSessionServiceInternalDefault.java:179) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invoke(
>> ActionInvocationFacetForDomainEventAbstract.java:161) at
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault.
>> executeInternal(ObjectActionDefault.java:398) at org.apache.isis.core.
>> metamodel.specloader.specimpl.ObjectActionDefault.execute(ObjectActionDefault.java:387)
>> at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> handleActionMethod(DomainObjectInvocationHandler.java:671) at
>> org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> invoke(DomainObjectInvocationHandler.java:284) at
>> org.apache.isis.core.wrapper.proxy.ProxyCreator$1.invoke(ProxyCreator.java:72)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository_$$_jvstfc5_1b.createUnprocessedNotification(
>> SupplierAnyOfferChangedNotificationRepository_$$_jvstfc5_1b.java) at
>> mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository.addUnprocessedNotification(SupplierAnyOfferChangedNotificationRepository.java:101)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository.lambda$0(SupplierAnyOfferChangedNotificationRepository.java:163)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository$$Lambda$40/685085353.apply(Unknown Source) at
>> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
>> at 
>> java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
>> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
>> at 
>> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
>> at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
>> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>> at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository.downloadToDatabaseAndDeleteFromQueue(
>> SupplierAnyOfferChangedNotificationRepository.java:186) at sun.reflect.
>> NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.
>> NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> DelegatingMethodAccessorImpl.java:43) at 
>> java.lang.reflect.Method.invoke(Method.java:483)
>> at org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invokeMethodElseFromCache(
>> ActionInvocationFacetForDomainEventAbstract.java:408) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:262) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:1) at
>> org.apache.isis.applib.services.iactn.Interaction.
>> executeInternal(Interaction.java:173) at org.apache.isis.applib.
>> services.iactn.Interaction.execute(Interaction.java:143) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.doInvoke(
>> ActionInvocationFacetForDomainEventAbstract.java:311) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$1.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:165) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:143) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:133) at
>> org.apache.isis.core.runtime.services.persistsession.
>> PersistenceSessionServiceInternalDefault.executeWithinTransaction(
>> PersistenceSessionServiceInternalDefault.java:179) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invoke(
>> ActionInvocationFacetForDomainEventAbstract.java:161) at
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault.
>> executeInternal(ObjectActionDefault.java:398) at org.apache.isis.core.
>> metamodel.specloader.specimpl.ObjectActionDefault.execute(ObjectActionDefault.java:387)
>> at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> handleActionMethod(DomainObjectInvocationHandler.java:671) at
>> org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> invoke(DomainObjectInvocationHandler.java:284) at
>> org.apache.isis.core.wrapper.proxy.ProxyCreator$1.invoke(ProxyCreator.java:72)
>> at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotific
>> ationRepository_$$_jvstfc5_1b.downloadToDatabaseAndDeleteFromQueue(
>> SupplierAnyOfferChangedNotificationRepository_$$_jvstfc5_1b.java) at
>> mydom.dom.supplier.subscription.SupplierCompetitionAnalysisService.
>> downloadCompetitorsInformation(SupplierCompetitionAnalysisService.java:531)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> DelegatingMethodAccessorImpl.java:43) at 
>> java.lang.reflect.Method.invoke(Method.java:483)
>> at org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invokeMethodElseFromCache(
>> ActionInvocationFacetForDomainEventAbstract.java:408) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:262) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$2.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:1) at
>> org.apache.isis.applib.services.iactn.Interaction.
>> executeInternal(Interaction.java:173) at org.apache.isis.applib.
>> services.iactn.Interaction.execute(Interaction.java:143) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.doInvoke(
>> ActionInvocationFacetForDomainEventAbstract.java:311) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract$1.execute(
>> ActionInvocationFacetForDomainEventAbstract.java:165) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:143) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:133) at
>> org.apache.isis.core.runtime.services.persistsession.
>> PersistenceSessionServiceInternalDefault.executeWithinTransaction(
>> PersistenceSessionServiceInternalDefault.java:179) at
>> org.apache.isis.core.metamodel.facets.actions.action.invocation.
>> ActionInvocationFacetForDomainEventAbstract.invoke(
>> ActionInvocationFacetForDomainEventAbstract.java:161) at
>> org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault.
>> executeInternal(ObjectActionDefault.java:398) at org.apache.isis.core.
>> metamodel.specloader.specimpl.ObjectActionDefault.execute(ObjectActionDefault.java:387)
>> at org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> handleActionMethod(DomainObjectInvocationHandler.java:671) at
>> org.apache.isis.core.wrapper.handlers.DomainObjectInvocationHandler.
>> invoke(DomainObjectInvocationHandler.java:284) at
>> org.apache.isis.core.wrapper.proxy.ProxyCreator$1.invoke(ProxyCreator.java:72)
>> at mydom.dom.supplier.subscription.SupplierCompetitionAnalysisSer
>> vice_$$_jvstfc5_19.downloadCompetitorsInformation(
>> SupplierCompetitionAnalysisService_$$_jvstfc5_19.java) at
>> mydom.dom.supplier.subscription.schedule.DownloadCompetitorsInformation$
>> SupplierUpdateCompetitionInformationRunnable.
>> executeWithinExceptionHandler(DownloadCompetitorsInformation.java:57) at
>> mydom.dom.scheduler.mydomSessionTemplate.doExecuteWithTransaction(mydomSessionTemplate.java:17)
>> at org.apache.isis.core.runtime.sessiontemplate.
>> AbstractIsisSessionTemplate$1.execute(AbstractIsisSessionTemplate.java:66)
>> at org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:143) at
>> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.
>> executeWithinTransaction(IsisTransactionManager.java:133) at
>> org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTemplate.
>> doExecute(AbstractIsisSessionTemplate.java:63) at
>> org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTemplate.
>> execute(AbstractIsisSessionTemplate.java:41) at mydom.dom.scheduler.
>> AbstractIsisQuartzJob.execute(AbstractIsisQuartzJob.java:51) at
>> org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.
>> SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) ®ƒ

Reply via email to