[jboss-jira] [JBoss JIRA] Commented: (JBAOP-621) Adding object to simple meta data without PayloadKey.AS_IS results in ClassCastException
Stale Pedersen (JIRA)
jira-events at lists.jboss.org
Wed Aug 13 10:59:09 EDT 2008
[ https://jira.jboss.org/jira/browse/JBAOP-621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12424788#action_12424788 ]
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
More information about the jboss-jira
mailing list