You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by mn...@apache.org on 2014/12/17 15:44:18 UTC
svn commit: r1646269 - in
/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy: impl/
impl/common/ impl/gen/ impl/interfaces/ impl/weaving/ synthesizer/
Author: mnuttall
Date: Wed Dec 17 14:44:17 2014
New Revision: 1646269
URL: http://svn.apache.org/r1646269
Log:
Aries-1280: Bytecode weaving for blueprint proxy classes does not support Java 8 - from a patch by Adam Pilkington
Modified:
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyUtils.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyUtils.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyUtils.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyUtils.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyUtils.java Wed Dec 17 14:44:17 2014
@@ -26,26 +26,40 @@ import org.slf4j.LoggerFactory;
public class ProxyUtils
{
- private static Logger LOGGER = LoggerFactory.getLogger(ProxyUtils.class);
- public static final int JAVA_CLASS_VERSION = new BigDecimal(System.getProperty("java.class.version")).intValue();
- private static int weavingJavaVersion = -1; // initialise an invalid number
- /**
- * Get the java version to be woven at.
- * @return
- */
- public static int getWeavingJavaVersion() {
- if (weavingJavaVersion == -1 ) {
- if (JAVA_CLASS_VERSION >= Opcodes.V1_7) {
- LOGGER.debug("Weaving to Java 7");
- weavingJavaVersion = Opcodes.V1_7;
- } else if (JAVA_CLASS_VERSION == Opcodes.V1_6){
- LOGGER.debug("Weaving to Java 6");
- weavingJavaVersion = Opcodes.V1_6;
- } else if (JAVA_CLASS_VERSION == Opcodes.V1_5) {
- LOGGER.debug("Weaving to Java 5");
- weavingJavaVersion = Opcodes.V1_5;
- } // no need to list all Opcodes as Aries should only work with java5 or above.
- }
- return weavingJavaVersion;
- }
+ private static Logger LOGGER = LoggerFactory.getLogger(ProxyUtils.class);
+ public static final int JAVA_CLASS_VERSION = new BigDecimal(System.getProperty("java.class.version")).intValue();
+ private static int weavingJavaVersion = -1; // initialise an invalid number
+
+ /**
+ * Get the java version to be woven at.
+ * @return
+ */
+ public static int getWeavingJavaVersion() {
+ if (weavingJavaVersion == -1 ) {
+ //In order to avoid an inconsistent stack error the version of the woven byte code needs to match
+ //the level of byte codes in the original class
+ switch(JAVA_CLASS_VERSION) {
+ case Opcodes.V1_8:
+ LOGGER.debug("Weaving to Java 8");
+ weavingJavaVersion = Opcodes.V1_8;
+ break;
+ case Opcodes.V1_7:
+ LOGGER.debug("Weaving to Java 7");
+ weavingJavaVersion = Opcodes.V1_7;
+ break;
+ case Opcodes.V1_6:
+ LOGGER.debug("Weaving to Java 6");
+ weavingJavaVersion = Opcodes.V1_6;
+ break;
+ case Opcodes.V1_5:
+ LOGGER.debug("Weaving to Java 5");
+ weavingJavaVersion = Opcodes.V1_5;
+ break;
+ default:
+ //aries should work with Java 5 or above - also will highlight when a higher level (and unsupported) level of Java is released
+ throw new IllegalArgumentException("Invalid Java version " + JAVA_CLASS_VERSION);
+ }
+ }
+ return weavingJavaVersion;
+ }
}
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java Wed Dec 17 14:44:17 2014
@@ -206,13 +206,13 @@ public abstract class AbstractWovenProxy
* The name of this class
* @param loader
* The ClassLoader loading this class
- */
- public AbstractWovenProxyAdapter(ClassVisitor writer, String className,
- ClassLoader loader) {
- super(Opcodes.ASM4, writer);
- typeBeingWoven = Type.getType("L" + className.replace('.', '/') + ";");
- //By default we expect to see methods from a concrete class
- currentMethodDeclaringType = typeBeingWoven;
+ */
+ public AbstractWovenProxyAdapter(ClassVisitor writer, String className,
+ ClassLoader loader) {
+ super(Opcodes.ASM5, writer);
+ typeBeingWoven = Type.getType("L" + className.replace('.', '/') + ";");
+ //By default we expect to see methods from a concrete class
+ currentMethodDeclaringType = typeBeingWoven;
currentMethodDeclaringTypeIsInterface = false;
this.loader = loader;
}
@@ -355,13 +355,13 @@ public abstract class AbstractWovenProxy
currentMethodDeclaringType, currentMethodDeclaringTypeIsInterface);
} else if (name.equals("<clinit>")){
//there is an existing clinit method, change the fields we use
- //to write our init code to static_init_UUID instead
- staticInitMethod = new Method("static_init_" + UU_ID, Type.VOID_TYPE, NO_ARGS);
- staticInitMethodFlags = staticInitMethodFlags | ACC_FINAL;
- methodVisitorToReturn = new AdviceAdapter(Opcodes.ASM4, cv.visitMethod(access, name, desc, signature,
- exceptions), access, name, desc){
- @Override
- protected void onMethodEnter()
+ //to write our init code to static_init_UUID instead
+ staticInitMethod = new Method("static_init_" + UU_ID, Type.VOID_TYPE, NO_ARGS);
+ staticInitMethodFlags = staticInitMethodFlags | ACC_FINAL;
+ methodVisitorToReturn = new AdviceAdapter(Opcodes.ASM5, cv.visitMethod(access, name, desc, signature,
+ exceptions), access, name, desc){
+ @Override
+ protected void onMethodEnter()
{
//add into the <clinit> a call to our synthetic static_init_UUID
invokeStatic(typeBeingWoven, staticInitMethod);
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java Wed Dec 17 14:44:17 2014
@@ -26,13 +26,13 @@ import static org.apache.aries.proxy.imp
import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.NO_ARGS;
import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.OBJECT_TYPE;
import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.THROWABLE_INAME;
-import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.WOVEN_PROXY_IFACE_TYPE;
-import static org.objectweb.asm.Opcodes.ACONST_NULL;
-import static org.objectweb.asm.Opcodes.IFNE;
-import static org.objectweb.asm.Opcodes.ASM4;
-
-import java.util.Arrays;
-
+import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.WOVEN_PROXY_IFACE_TYPE;
+import static org.objectweb.asm.Opcodes.ACONST_NULL;
+import static org.objectweb.asm.Opcodes.IFNE;
+import static org.objectweb.asm.Opcodes.ASM5;
+
+import java.util.Arrays;
+
import org.apache.aries.proxy.InvocationListener;
import org.apache.aries.proxy.impl.NLS;
import org.objectweb.asm.Label;
@@ -177,13 +177,13 @@ public abstract class AbstractWovenProxy
* @param proxyType - the type being woven that contains this method
*/
public AbstractWovenProxyMethodAdapter(MethodVisitor mv, int access, String name, String desc,
- String methodStaticFieldName, Method currentTransformMethod, Type typeBeingWoven,
- Type methodDeclaringType, boolean isMethodDeclaringTypeInterface, boolean isDefaultMethod)
- {
- super(ASM4, mv, access, name, desc);
- this.methodStaticFieldName = methodStaticFieldName;
- this.currentTransformMethod = currentTransformMethod;
- returnType = currentTransformMethod.getReturnType();
+ String methodStaticFieldName, Method currentTransformMethod, Type typeBeingWoven,
+ Type methodDeclaringType, boolean isMethodDeclaringTypeInterface, boolean isDefaultMethod)
+ {
+ super(ASM5, mv, access, name, desc);
+ this.methodStaticFieldName = methodStaticFieldName;
+ this.currentTransformMethod = currentTransformMethod;
+ returnType = currentTransformMethod.getReturnType();
isVoid = returnType.getSort() == Type.VOID;
this.typeBeingWoven = typeBeingWoven;
this.methodDeclaringType = methodDeclaringType;
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/ConstructorFinder.java Wed Dec 17 14:44:17 2014
@@ -34,13 +34,13 @@ public class ConstructorFinder extends C
{
return hasNoArgsConstructor;
}
-
- public ConstructorFinder()
- {
- super(Opcodes.ASM4);
- }
-
- @Override
+
+ public ConstructorFinder()
+ {
+ super(Opcodes.ASM5);
+ }
+
+ @Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature,
String[] exceptions)
{
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java Wed Dec 17 14:44:17 2014
@@ -60,13 +60,13 @@ final class MethodCopyingClassAdapter ex
private final AbstractWovenProxyAdapter wovenProxyAdapter;
- public MethodCopyingClassAdapter(AbstractWovenProxyAdapter awpa, ClassLoader definingLoader,
- Class<?> superToCopy, Type overridingClassType, Set<Method> knownMethods,
- Map<String, TypeMethod> transformedMethods) {
- super(Opcodes.ASM4);
- this.wovenProxyAdapter = awpa;
- this.superToCopy = superToCopy;
- this.overridingClassType = overridingClassType;
+ public MethodCopyingClassAdapter(AbstractWovenProxyAdapter awpa, ClassLoader definingLoader,
+ Class<?> superToCopy, Type overridingClassType, Set<Method> knownMethods,
+ Map<String, TypeMethod> transformedMethods) {
+ super(Opcodes.ASM5);
+ this.wovenProxyAdapter = awpa;
+ this.superToCopy = superToCopy;
+ this.overridingClassType = overridingClassType;
this.knownMethods = knownMethods;
this.transformedMethods = transformedMethods;
@@ -167,13 +167,13 @@ final class MethodCopyingClassAdapter ex
private final Type superType;
/** The method we are weaving */
private final Method currentTransformMethod;
-
- public CopyingMethodAdapter(GeneratorAdapter mv, Type superType,
- Method currentTransformMethod) {
- super(Opcodes.ASM4);
- this.mv = mv;
- this.superType = superType;
- this.currentTransformMethod = currentTransformMethod;
+
+ public CopyingMethodAdapter(GeneratorAdapter mv, Type superType,
+ Method currentTransformMethod) {
+ super(Opcodes.ASM5);
+ this.mv = mv;
+ this.superType = superType;
+ this.currentTransformMethod = currentTransformMethod;
}
//TODO might not work for attributes
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassVisitor.java Wed Dec 17 14:44:17 2014
@@ -32,13 +32,13 @@ public final class OSGiFriendlyClassVisi
private final boolean inlineJSR;
-
- public OSGiFriendlyClassVisitor(ClassVisitor cv, int arg1) {
-
- super(Opcodes.ASM4, cv);
-
- inlineJSR = arg1 == ClassWriter.COMPUTE_FRAMES;
- }
+
+ public OSGiFriendlyClassVisitor(ClassVisitor cv, int arg1) {
+
+ super(Opcodes.ASM5, cv);
+
+ inlineJSR = arg1 == ClassWriter.COMPUTE_FRAMES;
+ }
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java Wed Dec 17 14:44:17 2014
@@ -66,7 +66,7 @@ public class ProxySubclassAdapter extend
public ProxySubclassAdapter(ClassVisitor writer, String newClassName, ClassLoader loader)
{
// call the superclass constructor
- super(Opcodes.ASM4, writer);
+ super(Opcodes.ASM5, writer);
// the writer is now the cv in the superclass of ClassAdapter
LOGGER.debug(Constants.LOG_ENTRY, "ProxySubclassAdapter", new Object[] { this, writer,
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassHierarchyAdapter.java Wed Dec 17 14:44:17 2014
@@ -44,13 +44,13 @@ public class ProxySubclassHierarchyAdapt
private Collection<String> methodsToImplement = null;
private static Logger LOGGER = LoggerFactory.getLogger(ProxySubclassHierarchyAdapter.class);
-
- ProxySubclassHierarchyAdapter(ProxySubclassAdapter adapter, Collection<String> methodsToImplement)
- {
- super(Opcodes.ASM4);
- LOGGER.debug(Constants.LOG_ENTRY, "ProxySubclassHeirarchyAdapter", new Object[] {
- this, adapter, methodsToImplement });
-
+
+ ProxySubclassHierarchyAdapter(ProxySubclassAdapter adapter, Collection<String> methodsToImplement)
+ {
+ super(Opcodes.ASM5);
+ LOGGER.debug(Constants.LOG_ENTRY, "ProxySubclassHeirarchyAdapter", new Object[] {
+ this, adapter, methodsToImplement });
+
this.methodsToImplement = methodsToImplement;
this.adapter = adapter;
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceCombiningClassAdapter.java Wed Dec 17 14:44:17 2014
@@ -58,13 +58,13 @@ final class InterfaceCombiningClassAdapt
* @param className
* @param loader
* @param interfaces
- */
- InterfaceCombiningClassAdapter(String className,
- ClassLoader loader, Class<?> superclass, Collection<Class<?>> interfaces) {
- super(Opcodes.ASM4);
- writer = new OSGiFriendlyClassWriter(ClassWriter.COMPUTE_FRAMES, loader);
- ClassVisitor cv = new OSGiFriendlyClassVisitor(writer, ClassWriter.COMPUTE_FRAMES);
- adapter = new InterfaceUsingWovenProxyAdapter(cv, className, loader);
+ */
+ InterfaceCombiningClassAdapter(String className,
+ ClassLoader loader, Class<?> superclass, Collection<Class<?>> interfaces) {
+ super(Opcodes.ASM5);
+ writer = new OSGiFriendlyClassWriter(ClassWriter.COMPUTE_FRAMES, loader);
+ ClassVisitor cv = new OSGiFriendlyClassVisitor(writer, ClassWriter.COMPUTE_FRAMES);
+ adapter = new InterfaceUsingWovenProxyAdapter(cv, className, loader);
this.interfaces = interfaces;
this.superclass = superclass;
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/InterfaceProxyGenerator.java Wed Dec 17 14:44:17 2014
@@ -45,13 +45,13 @@ import org.osgi.framework.wiring.BundleW
* To be safely used as a supertype the superclass should be a WovenProxy.
*/
public final class InterfaceProxyGenerator extends ClassVisitor implements Opcodes {
-
- public InterfaceProxyGenerator()
- {
- super(Opcodes.ASM4);
-
- }
-
+
+ public InterfaceProxyGenerator()
+ {
+ super(Opcodes.ASM5);
+
+ }
+
private static final Map<BundleWiring, WeakReference<ProxyClassLoader>> cache =
new WeakHashMap<BundleWiring, WeakReference<ProxyClassLoader>>(128);
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/SyntheticSerialVerUIDAdder.java Wed Dec 17 14:44:17 2014
@@ -17,13 +17,13 @@
* under the License.
*/
package org.apache.aries.proxy.impl.weaving;
-
-import java.lang.reflect.Modifier;
-
-import static org.objectweb.asm.Opcodes.ASM4;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
+
+import java.lang.reflect.Modifier;
+
+import static org.objectweb.asm.Opcodes.ASM5;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.Type;
import org.objectweb.asm.commons.SerialVersionUIDAdder;
class SyntheticSerialVerUIDAdder extends SerialVersionUIDAdder {
@@ -39,13 +39,13 @@ class SyntheticSerialVerUIDAdder extends
/**
* Set to true if the class already has SVUID.
*/
- private boolean hasSVUID;
-
- public SyntheticSerialVerUIDAdder(WovenProxyAdapter cv) {
- super(ASM4, cv);
- wpa = cv;
- }
-
+ private boolean hasSVUID;
+
+ public SyntheticSerialVerUIDAdder(WovenProxyAdapter cv) {
+ super(ASM5, cv);
+ wpa = cv;
+ }
+
// The following visit and visitField methods are workaround since ASM4 does not supply the javadoced method isHasSVUID() by mistake.
// When the method isHasSVUId() or similar methods available, we can remove the following two methods.
Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java
URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java?rev=1646269&r1=1646268&r2=1646269&view=diff
==============================================================================
--- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java (original)
+++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java Wed Dec 17 14:44:17 2014
@@ -80,13 +80,13 @@ public class Synthesizer
public static class CustomClassVisitor extends ClassVisitor
{
-
- public CustomClassVisitor( ClassVisitor cv)
- {
- super(Opcodes.ASM4, cv);
-
- }
- @Override
+
+ public CustomClassVisitor( ClassVisitor cv)
+ {
+ super(Opcodes.ASM5, cv);
+
+ }
+ @Override
public void visit(int version, int access, String name, String signature,
String superName, String[] interfaces)
{