You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2013/05/31 08:05:16 UTC

svn commit: r1488102 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java

Author: struberg
Date: Fri May 31 06:05:16 2013
New Revision: 1488102

URL: http://svn.apache.org/r1488102
Log:
OPENJPA-2388 support for xbean shaded ASM4

txs to rmannibucau for the patch!

Modified:
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java?rev=1488102&r1=1488101&r2=1488102&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java Fri May 31 06:05:16 2013
@@ -59,13 +59,18 @@ public final class AsmAdaptor {
     static {
         // try the "real" asm first, then the others
         tryClass("org.objectweb.asm.");
+        tryClass("org.apache.xbean.asm4.");
         tryClass("org.apache.xbean.asm.");
         tryClass("org.springframework.asm.");
 
         // get needed stuff
         try {
             COMPUTE_FRAMES = cwClass.getField("COMPUTE_FRAMES").getInt(null);
-            classReaderAccept = crClass.getMethod("accept", cwClass.getInterfaces()[0], int.class);
+            if (cwClass.getInterfaces().length > 0) { // ASM 3
+                classReaderAccept = crClass.getMethod("accept", cwClass.getInterfaces()[0], int.class);
+            } else { // ASM 4
+                classReaderAccept = crClass.getMethod("accept", cwClass.getSuperclass(), int.class);
+            }
             classReaderConstructor = crClass.getConstructor(InputStream.class);
             classWriterConstructor = cwClass.getConstructor(int.class);
             classWritertoByteArray = cwClass.getMethod("toByteArray");