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 <[email protected]> > 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 <[email protected]> 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) ®ƒ
