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.SupplierAnyOfferChangedNotificationRepository.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.SupplierAnyOfferChangedNotificationRepository_$$_jvstfc5_1b.createUnprocessedNotification(SupplierAnyOfferChangedNotificationRepository_$$_jvstfc5_1b.java) at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotificationRepository.addUnprocessedNotification(SupplierAnyOfferChangedNotificationRepository.java:101) at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotificationRepository.lambda$0(SupplierAnyOfferChangedNotificationRepository.java:163) at mydom.dom.supplier.subscription.SupplierAnyOfferChangedNotificationRepository$$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.SupplierAnyOfferChangedNotificationRepository.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.SupplierAnyOfferChangedNotificationRepository_$$_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.SupplierCompetitionAnalysisService_$$_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) ®ƒ
