[jboss-jira] [JBoss JIRA] (AS7-3959) SerializingCloner can't clone primitive data types
Sebastian Woeste (JIRA)
jira-events at lists.jboss.org
Thu Mar 1 04:01:39 EST 2012
[ https://issues.jboss.org/browse/AS7-3959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672472#comment-12672472 ]
Sebastian Woeste commented on AS7-3959:
---------------------------------------
Its both, the java version used to compile and the one the jboss is running with.
javap -verbose for the GenericBusinessFacadeAdapter prints the following:
Compiled from "GenericBusinessFacadeAdapter.java"
public class de.zeb.control.fw.bl.internal.layerabstraction.GenericBusinessFacadeAdapter extends java.lang.Object implements de.zeb.control.fw.bl.layerabstraction.GenericBusinessFa
cade,org.springframework.beans.factory.InitializingBean
SourceFile: "GenericBusinessFacadeAdapter.java"
minor version: 0
major version: 49
Constant pool:
const #1 = class #2; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter
const #2 = Asciz de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
const #3 = class #4; // java/lang/Object
const #4 = Asciz java/lang/Object;
const #5 = class #6; // de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacade
const #6 = Asciz de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacade;
const #7 = class #8; // org/springframework/beans/factory/InitializingBean
const #8 = Asciz org/springframework/beans/factory/InitializingBean;
const #9 = Asciz facadeHome;
const #10 = Asciz Ljava/lang/Object;;
const #11 = Asciz facadeRemote;
const #12 = Asciz Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;;
const #13 = Asciz facadeLocal;
const #14 = Asciz Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;;
const #15 = Asciz <init>;
const #16 = Asciz ()V;
const #17 = Asciz Code;
const #18 = Method #3.#19; // java/lang/Object."<init>":()V
const #19 = NameAndType #15:#16;// "<init>":()V
const #20 = Asciz LineNumberTable;
const #21 = Asciz LocalVariableTable;
const #22 = Asciz this;
const #23 = Asciz Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;;
const #24 = Asciz invokeMethod;
const #25 = Asciz (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lang/O
bject;;
const #26 = Asciz Exceptions;
const #27 = class #28; // java/lang/reflect/InvocationTargetException
const #28 = Asciz java/lang/reflect/InvocationTargetException;
const #29 = Asciz Signature;
const #30 = Asciz (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class<*>;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lan
g/Object;;
const #31 = Method #1.#32; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.getFacadeRemote:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusi
nessFacadeRemote;
const #32 = NameAndType #33:#34;// getFacadeRemote:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
const #33 = Asciz getFacadeRemote;
const #34 = Asciz ()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;;
const #35 = InterfaceMethod #36.#38; // de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote.invokeMethod:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/
Class;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lang/Object;
const #36 = class #37; // de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote
const #37 = Asciz de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
const #38 = NameAndType #24:#25;// invokeMethod:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFa
cadeContext;)Ljava/lang/Object;
const #39 = Method #1.#40; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.getFacadeLocal:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusin
essFacadeLocal;
const #40 = NameAndType #41:#42;// getFacadeLocal:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
const #41 = Asciz getFacadeLocal;
const #42 = Asciz ()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;;
const #43 = InterfaceMethod #44.#38; // de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal.invokeMethod:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/C
lass;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lang/Object;
const #44 = class #45; // de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal
const #45 = Asciz de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
const #46 = class #47; // de/zeb/control/fw/bl/layerabstraction/MethodDelegateException
const #47 = Asciz de/zeb/control/fw/bl/layerabstraction/MethodDelegateException;
const #48 = String #49; // GenericBusinessFacadeAdapter.exMsg.missingEJBFacadeInstance
const #49 = Asciz GenericBusinessFacadeAdapter.exMsg.missingEJBFacadeInstance;
const #50 = Method #51.#53; // de/zeb/control/fw/bl/internal/layerabstraction/Messages.getString:(Ljava/lang/String;)Ljava/lang/String;
const #51 = class #52; // de/zeb/control/fw/bl/internal/layerabstraction/Messages
const #52 = Asciz de/zeb/control/fw/bl/internal/layerabstraction/Messages;
const #53 = NameAndType #54:#55;// getString:(Ljava/lang/String;)Ljava/lang/String;
const #54 = Asciz getString;
const #55 = Asciz (Ljava/lang/String;)Ljava/lang/String;;
const #56 = Method #46.#57; // de/zeb/control/fw/bl/layerabstraction/MethodDelegateException."<init>":(Ljava/lang/String;)V
const #57 = NameAndType #15:#58;// "<init>":(Ljava/lang/String;)V
const #58 = Asciz (Ljava/lang/String;)V;
const #59 = Asciz aBeanName;
const #60 = Asciz Ljava/lang/String;;
const #61 = Asciz aMethodName;
const #62 = Asciz paramTypes;
const #63 = Asciz [Ljava/lang/Class;;
const #64 = Asciz aArgs;
const #65 = Asciz [Ljava/lang/Object;;
const #66 = Asciz aContext;
const #67 = Asciz Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;;
const #68 = Asciz ret;
const #69 = Asciz afterPropertiesSet;
const #70 = class #71; // java/lang/Exception
const #71 = Asciz java/lang/Exception;
const #72 = Method #1.#73; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.getFacadeHome:()Ljava/lang/Object;
const #73 = NameAndType #74:#75;// getFacadeHome:()Ljava/lang/Object;
const #74 = Asciz getFacadeHome;
const #75 = Asciz ()Ljava/lang/Object;;
const #76 = class #77; // java/lang/IllegalArgumentException
const #77 = Asciz java/lang/IllegalArgumentException;
const #78 = String #79; // GenericBusinessFacadeAdapter.3
const #79 = Asciz GenericBusinessFacadeAdapter.3;
const #80 = Method #76.#57; // java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
const #81 = Field #1.#82; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.facadeRemote:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessF
acadeRemote;
const #82 = NameAndType #11:#12;// facadeRemote:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
const #83 = Field #1.#84; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.facadeLocal:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFa
cadeLocal;
const #84 = NameAndType #13:#14;// facadeLocal:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
const #85 = String #86; // GenericBusinessFacadeAdapter.4
const #86 = Asciz GenericBusinessFacadeAdapter.4;
const #87 = Field #1.#88; // de/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter.facadeHome:Ljava/lang/Object;
const #88 = NameAndType #9:#10;// facadeHome:Ljava/lang/Object;
const #89 = Asciz setFacadeHome;
const #90 = Asciz (Ljava/lang/Object;)V;
const #91 = Asciz aFacadeHome;
const #92 = Asciz setFacadeRemote;
const #93 = Asciz (Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;)V;
const #94 = Asciz aFacadeRemote;
const #95 = Asciz setFacadeLocal;
const #96 = Asciz (Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;)V;
const #97 = Asciz aFacadeLocal;
const #98 = Asciz SourceFile;
const #99 = Asciz GenericBusinessFacadeAdapter.java;
{
public de.zeb.control.fw.bl.internal.layerabstraction.GenericBusinessFacadeAdapter();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokespecial #18; //Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 31: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
public java.lang.Object invokeMethod(java.lang.String, java.lang.String, java.lang.Class[], java.lang.Object[], de.zeb.control.fw.bl.layerabstraction.context.BusinessFacadeContext)
throws java.lang.reflect.InvocationTargetException;
Exceptions:
throws java.lang.reflect.InvocationTargetException Signature: length = 0x2
00 1E
Code:
Stack=6, Locals=7, Args_size=6
0: aload_0
1: invokevirtual #31; //Method getFacadeRemote:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
4: ifnull 28
7: aload_0
8: invokevirtual #31; //Method getFacadeRemote:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
11: aload_1
12: aload_2
13: aload_3
14: aload 4
16: aload 5
18: invokeinterface #35, 6; //InterfaceMethod de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote.invokeMethod:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/C
lass;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lang/Object;
23: astore 6
25: goto 69
28: aload_0
29: invokevirtual #39; //Method getFacadeLocal:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
32: ifnull 56
35: aload_0
36: invokevirtual #39; //Method getFacadeLocal:()Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
39: aload_1
40: aload_2
41: aload_3
42: aload 4
44: aload 5
46: invokeinterface #43, 6; //InterfaceMethod de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal.invokeMethod:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Cl
ass;[Ljava/lang/Object;Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;)Ljava/lang/Object;
51: astore 6
53: goto 69
56: new #46; //class de/zeb/control/fw/bl/layerabstraction/MethodDelegateException
59: dup
60: ldc #48; //String GenericBusinessFacadeAdapter.exMsg.missingEJBFacadeInstance
62: invokestatic #50; //Method de/zeb/control/fw/bl/internal/layerabstraction/Messages.getString:(Ljava/lang/String;)Ljava/lang/String;
65: invokespecial #56; //Method de/zeb/control/fw/bl/layerabstraction/MethodDelegateException."<init>":(Ljava/lang/String;)V
68: athrow
69: aload 6
71: areturn
LineNumberTable:
line 43: 0
line 45: 7
line 50: 28
line 51: 35
line 53: 56
line 54: 60
line 53: 65
line 57: 69
LocalVariableTable:
Start Length Slot Name Signature
0 72 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
0 72 1 aBeanName Ljava/lang/String;
0 72 2 aMethodName Ljava/lang/String;
0 72 3 paramTypes [Ljava/lang/Class;
0 72 4 aArgs [Ljava/lang/Object;
0 72 5 aContext Lde/zeb/control/fw/bl/layerabstraction/context/BusinessFacadeContext;
25 3 6 ret Ljava/lang/Object;
53 3 6 ret Ljava/lang/Object;
69 3 6 ret Ljava/lang/Object;
public void afterPropertiesSet() throws java.lang.Exception;
Exceptions:
throws java.lang.Exception Code:
Stack=3, Locals=1, Args_size=1
0: aload_0
1: invokevirtual #72; //Method getFacadeHome:()Ljava/lang/Object;
4: ifnonnull 20
7: new #76; //class java/lang/IllegalArgumentException
10: dup
11: ldc #78; //String GenericBusinessFacadeAdapter.3
13: invokestatic #50; //Method de/zeb/control/fw/bl/internal/layerabstraction/Messages.getString:(Ljava/lang/String;)Ljava/lang/String;
16: invokespecial #80; //Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
19: athrow
20: aload_0
21: invokevirtual #72; //Method getFacadeHome:()Ljava/lang/Object;
24: instanceof #36; //class de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote
27: ifeq 44
30: aload_0
31: aload_0
32: invokevirtual #72; //Method getFacadeHome:()Ljava/lang/Object;
35: checkcast #36; //class de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote
38: putfield #81; //Field facadeRemote:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
41: goto 81
44: aload_0
45: invokevirtual #72; //Method getFacadeHome:()Ljava/lang/Object;
48: instanceof #44; //class de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal
51: ifeq 68
54: aload_0
55: aload_0
56: invokevirtual #72; //Method getFacadeHome:()Ljava/lang/Object;
59: checkcast #44; //class de/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal
62: putfield #83; //Field facadeLocal:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
65: goto 81
68: new #76; //class java/lang/IllegalArgumentException
71: dup
72: ldc #85; //String GenericBusinessFacadeAdapter.4
74: invokestatic #50; //Method de/zeb/control/fw/bl/internal/layerabstraction/Messages.getString:(Ljava/lang/String;)Ljava/lang/String;
77: invokespecial #80; //Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
80: athrow
81: return
LineNumberTable:
line 64: 0
line 65: 7
line 78: 20
line 79: 30
line 80: 44
line 81: 54
line 83: 68
line 86: 81
LocalVariableTable:
Start Length Slot Name Signature
0 82 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
public java.lang.Object getFacadeHome();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #87; //Field facadeHome:Ljava/lang/Object;
4: areturn
LineNumberTable:
line 92: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
public void setFacadeHome(java.lang.Object);
Code:
Stack=2, Locals=2, Args_size=2
0: aload_0
1: aload_1
2: putfield #87; //Field facadeHome:Ljava/lang/Object;
5: return
LineNumberTable:
line 99: 0
line 100: 5
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
0 6 1 aFacadeHome Ljava/lang/Object;
public de.zeb.control.fw.bl.layerabstraction.GenericBusinessFacadeRemote getFacadeRemote();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #81; //Field facadeRemote:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
4: areturn
LineNumberTable:
line 106: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
public void setFacadeRemote(de.zeb.control.fw.bl.layerabstraction.GenericBusinessFacadeRemote);
Code:
Stack=2, Locals=2, Args_size=2
0: aload_0
1: aload_1
2: putfield #81; //Field facadeRemote:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
5: return
LineNumberTable:
line 113: 0
line 114: 5
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
0 6 1 aFacadeRemote Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeRemote;
public de.zeb.control.fw.bl.layerabstraction.GenericBusinessFacadeLocal getFacadeLocal();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: getfield #83; //Field facadeLocal:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
4: areturn
LineNumberTable:
line 120: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
public void setFacadeLocal(de.zeb.control.fw.bl.layerabstraction.GenericBusinessFacadeLocal);
Code:
Stack=2, Locals=2, Args_size=2
0: aload_0
1: aload_1
2: putfield #83; //Field facadeLocal:Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
5: return
LineNumberTable:
line 127: 0
line 128: 5
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lde/zeb/control/fw/bl/internal/layerabstraction/GenericBusinessFacadeAdapter;
0 6 1 aFacadeLocal Lde/zeb/control/fw/bl/layerabstraction/GenericBusinessFacadeLocal;
}
> SerializingCloner can't clone primitive data types
> ---------------------------------------------------
>
> Key: AS7-3959
> URL: https://issues.jboss.org/browse/AS7-3959
> Project: Application Server 7
> Issue Type: Bug
> Components: EJB
> Affects Versions: 7.1.0.Final
> Reporter: Sebastian Woeste
> Assignee: jaikiran pai
> Labels: ejb, jboss-as7
>
> If i try to invoke a method remote the arguments will be cloned by org.jboss.marshalling.cloner.SerializingCloner.
> The SerializingCloner calls the ClassLoaderClassCloner.clone(final Class<?> original) method where an exception will be thrown if the argument is a primitive data type.
> See the forum reference for some more details.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list