[seam-commits] Seam SVN: r15231 - branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue Oct 9 06:00:25 EDT 2012


Author: manaRH
Date: 2012-10-09 06:00:25 -0400 (Tue, 09 Oct 2012)
New Revision: 15231

Modified:
   branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java
Log:
JBPAPP-10130 updated ProxyFactory with javassist patch

Modified: branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java
===================================================================
--- branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java	2012-10-09 09:55:00 UTC (rev 15230)
+++ branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java	2012-10-09 10:00:25 UTC (rev 15231)
@@ -858,6 +858,9 @@
         code.addGetstatic(thisClassName, HOLDER, HOLDER_TYPE);
         code.addAstore(arrayVar);
         code.addAload(arrayVar);
+        
+        callFind2Methods(code, meth.getName(), delegatorName, origIndex, desc, arrayVar);
+        /*
         code.addIconst(origIndex);
         code.addOpcode(Opcode.AALOAD);
         code.addOpcode(Opcode.IFNONNULL);
@@ -868,7 +871,7 @@
         callFindMethod(code, "findMethod", arrayVar, delIndex, delegatorName, desc);
 
         int pc2 = code.currentPc();
-        code.write16bit(pc, pc2 - pc + 1);
+        code.write16bit(pc, pc2 - pc + 1);*/
         code.addAload(0);
         code.addGetfield(thisClassName, HANDLER, HANDLER_TYPE);
         code.addAload(0);
@@ -891,10 +894,10 @@
 
         CodeAttribute ca = code.toCodeAttribute();
         forwarder.setCodeAttribute(ca);
-        StackMapTable.Writer writer = new StackMapTable.Writer(32);
+        /*StackMapTable.Writer writer = new StackMapTable.Writer(32);
         writer.appendFrame(pc2, new int[] { StackMapTable.OBJECT },
                            new int[] { cp.addClassInfo(HOLDER_TYPE) });
-        ca.setAttribute(writer.toStackMapTable(cp));
+        ca.setAttribute(writer.toStackMapTable(cp));*/
         return forwarder;
     }
 
@@ -993,6 +996,27 @@
         }
     }
 
+    private static void callFind2Methods(Bytecode code, String superMethod, String thisMethod,
+          int index, String desc, int arrayVar) 
+    {
+      String findClass = RuntimeSupport.class.getName();
+      String findDesc = "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/reflect/Method;)V";
+      code.addAload(0);
+      code.addLdc(superMethod);
+      if (thisMethod == null)
+      {
+         code.addOpcode(Opcode.ACONST_NULL);
+      }
+      else
+      {
+         code.addLdc(thisMethod);
+      }
+      code.addIconst(index);
+      code.addLdc(desc);
+      code.addAload(arrayVar);
+      code.addInvokestatic(findClass, "find2Methods", findDesc);
+   }
+
     private static int makeWrapper(Bytecode code, Class type, int regno) {
         int index = FactoryHelper.typeIndex(type);
         String wrapper = FactoryHelper.wrapperTypes[index]; 



More information about the seam-commits mailing list