[Design of JBoss Serialization] - Mustang Serialization problems.
by thammoud
Hello,
We have encountered a serialization problem when we moved to JDK 1.6. The following EJB throws an exception (Below).
public class TestServiceBean implements TestService {
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public Format getFormat() {
return DateFormat.getDateInstance(DateFormat.SHORT);
}
}
The code works perfectly in 1.5. We tried the latest nightly build of Mustang to no avail. Peforming a deep clone to the same object locally works fine thus leading us to believe that the interaction with JBOSS is what is causing this problem. We are using 4.0.4 JA on linux. Thanks for any info.
Caused by: java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is:
java.io.StreamCorruptedException: invalid type code: 00
at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:306)
at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
at org.jboss.remoting.Client.invoke(Client.java:525)
at org.jboss.remoting.Client.invoke(Client.java:488)
at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
... 2 more
Caused by: java.io.StreamCorruptedException: invalid type code: 00
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1642)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:480)
at java.util.Calendar.readObject(Calendar.java:2609)
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:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:107)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128)
at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66)
at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3964666#3964666
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3964666
19 years, 8 months
[Design of POJO Server] - Re: First real SARDeployer porting issue
by scott.stark@jboss.org
The next issue is that the thread context class loader seen in the mbean invocations as in this stack:
| Thread [VFSDeploymentScanner]
| InvocationContext.loadClass(String) line: 317
| InvocationContext.getReturnTypeClass() line: 198
| Invocation.getReturnTypeClass() line: 121
| ModelMBeanOperationInterceptor.invoke(Invocation) line: 65
| Invocation.invoke() line: 90
| XMBean(AbstractMBeanInvoker).invoke(String, Object[], String[]) line: 264
| MBeanServerImpl.invoke(ObjectName, String, Object[], String[]) line: 668
| ServiceCreator.installPlainMBean(MBeanServer, ObjectName, ServiceMetaData) line: 199
| ServiceCreator.install(MBeanServer, ObjectName, ServiceMetaData, Object) line: 111
| InstantiateAction.installAction(ServiceControllerContext) line: 45
| InstantiateAction(ServiceControllerContextAction).install(ControllerContext) line: 46
| ServiceControllerContextActions(AbstractControllerContextActions).install(ControllerContext, ControllerState, ControllerState) line: 51
| ServiceControllerContext(AbstractControllerContext).install(ControllerState, ControllerState) line: 226
| ServiceControllerContext.install(ControllerState, ControllerState) line: 187
| AbstractKernelController(AbstractController).install(ControllerContext, ControllerState, ControllerState) line: 596
| AbstractKernelController(AbstractController).incrementState(ControllerContext, boolean) line: 346
| AbstractKernelController(AbstractController).resolveContexts(ControllerState, ControllerState, boolean) line: 438
| AbstractKernelController(AbstractController).resolveContexts(boolean) line: 379
| AbstractKernelController(AbstractController).change(ControllerContext, ControllerState, boolean) line: 263
| AbstractKernelController(AbstractController).change(ControllerContext, ControllerState) line: 164
| ServiceController.install(Element, ObjectName) line: 228
| SARDeployer.deploy(DeploymentContext) line: 309
| DeploymentGraphVisitor.visit(Graph<DeploymentContext>, Vertex<DeploymentContext>) line: 74
| Graph<T>.depthFirstSearch(Vertex<T>, VisitorEX<T,E>) line: 225
| MainDeployerImpl.deploy(Deployment) line: 321
| VFSDeploymentScannerImpl.deploy(VirtualFile) line: 608
| VFSDeploymentScannerImpl.scan() line: 520
| VFSDeploymentScannerImpl.run() line: 376
| Executors$RunnableAdapter<T>.call() line: 417
| FutureTask$Sync.innerRunAndReset() line: 280
| ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).runAndReset() line: 135
| ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$101(ScheduledThreadPoolExecutor$ScheduledFutureTask) line: 65
| ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.runPeriodic() line: 142
| ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 166
| ThreadPoolExecutor$Worker.runTask(Runnable) line: 650
| ThreadPoolExecutor$Worker.run() line: 675
| Thread.run() line: not available
|
is neither the bean nor SARDeployer class loader. Its the server core org.jboss.system.server.NoAnnotationURLClassLoader, which does not have the jmx classes in the current setup. These are only visible via the JMXClassLoader instance associated with the JMXKernel and SARDeployer beans.
The VFSClassLoader is not a valid ClassLoadingDomain/DomainClassLoader that can support a unified typesystem currently. This is something I'm going to work on next week while I"m on vacation.
What I want to do for now is punt and put the jmx class back into the core server loader class loader and spend a couple of hours cleaning up as many SARDeployer issues as I can, and then document the curent state of the VDF impl in the MC_VDF_WORK branch so some progress on porting deployer can be done next week while I'm out.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3964657#3964657
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3964657
19 years, 8 months