[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2484) async:quartz-dispatcher + serializied fields in an entity = java.lang.ClassNotFoundException: No ClassLoaders found

Adam Warski (JIRA) jira-events at lists.jboss.org
Fri Mar 28 04:32:40 EDT 2008


    [ http://jira.jboss.com/jira/browse/JBSEAM-2484?page=comments#action_12405340 ] 
            
Adam Warski commented on JBSEAM-2484:
-------------------------------------

Of course, thanks and sorry for the trouble.

> async:quartz-dispatcher + serializied fields in an entity = java.lang.ClassNotFoundException: No ClassLoaders found
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-2484
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2484
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: Async
>    Affects Versions: 2.0.1.CR1, 2.0.0.GA
>         Environment: JBoss AS 4.2.2.GA, Seam 2.0.1.CR1 and 2.0.0.GA
>            Reporter: Adam Warski
>         Assigned To: Norman Richards
>             Fix For: 2.0.2.GA
>
>         Attachments: serialization_test.tar.gz, serialization_test.tar.gz
>
>
> When an asynchronous method is called, which reads entities from the DB which have serializable fields (with just an @Basic annotation), and the quartz dispatcher is used, a java.lang.ClassNotFoundException is thrown, when trying to read the entities.
> I attach a demo app (it is built using seam-gen 2.0.1.cr1, and has the lib directory removed).
> The application has the following classes:
> - SimpleEntity - an entity which just one property of class: SimpleSerializable - this is the serializable property
> - AsyncService / AsyncServiceImpl - this is the stateless bean that has the asynchronous method. The method simple reads all SimpleEntities from the database.
> To run the example, deploy it, open in the browser http://localhost:8080/serialization_test and click "Add new simple entity".
> This invokes an action, which persists a new SimpleEntity to the DB and invokes the asynchronous method.
> An exception then appears in the log, coming from the asynchronously called method:
> 09:50:25,745 ERROR [ErrorLogger] Job (DEFAULT.614f04c4:117680a919e:-7ffe threw an exception.
> org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize]
>         at org.quartz.core.JobRunShell.run(JobRunShell.java:214)
>         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
> * Nested Exception (Underlying Cause) ---------------
> javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize
>         at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
>         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
>         at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
>         at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:240)
>         at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:210)
>         at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:84)
>         at $Proxy96.asyncMethod(Unknown Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
>         at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
>         at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
>         at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:50)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
>         at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
>         at org.javassist.tmp.java.lang.Object_$$_javassist_2.asyncMethod(Object_$$_javassist_2.java)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
>         at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
>         at org.jboss.seam.async.AsynchronousInvocation.call(AsynchronousInvocation.java:52)
>         at org.jboss.seam.async.Asynchronous.executeInContexts(Asynchronous.java:76)
>         at org.jboss.seam.async.Asynchronous.execute(Asynchronous.java:45)
>         at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:240)
>         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
>         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
> Caused by: javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize
>         at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
>         at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:75)
>         at com.mydomain.test2.AsyncServiceImpl.asyncMethod(AsyncServiceImpl.java:28)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
>         at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
>         at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationContext.java:44)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
>         at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke(EntityManagerProxyInterceptor.java:26)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke(HibernateSessionProxyInterceptor.java:27)
>         at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
>         at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
>         at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
>         at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
>         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
>         at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
>         ... 42 more
> Caused by: org.hibernate.type.SerializationException: could not deserialize
>         at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:214)
>         at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:240)
>         at org.hibernate.type.SerializableType.fromBytes(SerializableType.java:82)
>         at org.hibernate.type.SerializableType.get(SerializableType.java:39)
>         at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
>         at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
>         at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
>         at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2096)
>         at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
>         at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
>         at org.hibernate.loader.Loader.getRow(Loader.java:1206)
>         at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
>         at org.hibernate.loader.Loader.doQuery(Loader.java:701)
>         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
>         at org.hibernate.loader.Loader.doList(Loader.java:2220)
>         at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
>         at org.hibernate.loader.Loader.list(Loader.java:2099)
>         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
>         at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
>         at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
>         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>         at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:66)
>         ... 75 more
> Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: com.mydomain.test2.SimpleSerializable
>         at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)
>         at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:521)
>         at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:242)
>         at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585)
>         at org.hibernate.util.SerializationHelper$CustomObjectInputStream.resolveClass(SerializationHelper.java:268)
>         at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
>         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>         at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:210)
>         ... 97 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list