[
https://jira.jboss.org/jira/browse/JBAOP-621?page=com.atlassian.jira.plug...
]
Stale Pedersen commented on JBAOP-621:
--------------------------------------
i tried to reproduce the problem by adding the metadata to the invocation object of a
simple interceptor.
like this:
public Object invoke(Invocation invocation) throws Throwable
{
try
{
invocation.getMetaData().addMetaData("TEST", "TEST",
"TEST");
Invocation copy = (Invocation) new MarshalledObject(invocation).get();
return invocation.invokeNext();
}
finally
{
System.out.println(">>> Leaving Interceptor");
}
}
i didnt use MarshalledObjectForLocalCalls though since according to its javadoc it
shouldnt behave differently than MarshalledObject. please let me know if there is
something i have misunderstood. - but if not, i dont believe that aop is the cause of the
problem.
Adding object to simple meta data without PayloadKey.AS_IS results in
ClassCastException
----------------------------------------------------------------------------------------
Key: JBAOP-621
URL:
https://jira.jboss.org/jira/browse/JBAOP-621
Project: JBoss AOP
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 2.0.0.CR11
Reporter: Carlo de Wolf
Assignee: Stale Pedersen
For the purpose of the bug changed the code in IsLocalInterceptor:
invocation.getMetaData().addMetaData("TEST", "TEST",
"TEST");
Invocation copy = (Invocation) new
MarshalledObjectForLocalCalls(invocation).get();
java.lang.ClassCastException:
org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput cannot be cast to
java.io.OutputStream
at org.jboss.aop.util.MarshalledValue.writeExternal(MarshalledValue.java:208)
at
org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
at
org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
at
org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:390)
at org.jboss.aop.metadata.SimpleMetaData.writeExternal(SimpleMetaData.java:322)
at
org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
at
org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
at
org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:390)
at org.jboss.aop.joinpoint.MethodInvocation.writeExternal(MethodInvocation.java:376)
at
org.jboss.ejb3.stateful.StatefulRemoteInvocation.writeExternal(StatefulRemoteInvocation.java:73)
at
org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
at
org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
at
org.jboss.serial.objectmetamodel.DataContainer$DataContainerOutput.writeObject(DataContainer.java:390)
at
org.jboss.serial.io.MarshalledObjectForLocalCalls.<init>(MarshalledObjectForLocalCalls.java:38)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invokeLocal(IsLocalInterceptor.java:79)
at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:71)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
at
org.jboss.ejb3.proxy.handler.stateful.StatefulRemoteProxyInvocationHandler.invoke(StatefulRemoteProxyInvocationHandler.java:139)
at $Proxy47.setName(Unknown Source)
at
org.jboss.ejb3.core.test.regression.ejbthree1253.unit.OverriddenProxyFactoryTestCase.test1(OverriddenProxyFactoryTestCase.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
There is an illegal class cast in MarshalledValue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira