Browse Source

Upgrade to CGLIB 3.3

Closes gh-23453
pull/23454/head
Juergen Hoeller 7 years ago
parent
commit
4123910d3d
  1. 2
      spring-core/spring-core.gradle
  2. 2
      spring-core/src/main/java/org/springframework/cglib/core/KeyFactory.java
  3. 14
      spring-core/src/main/java/org/springframework/cglib/proxy/Enhancer.java

2
spring-core/spring-core.gradle

@ -10,7 +10,7 @@ dependencyManagement {
// spring-core includes asm and repackages cglib, inlining both into the spring-core jar. // spring-core includes asm and repackages cglib, inlining both into the spring-core jar.
// cglib itself depends on asm and is therefore further transformed by the JarJar task to // cglib itself depends on asm and is therefore further transformed by the JarJar task to
// depend on org.springframework.asm; this avoids including two different copies of asm. // depend on org.springframework.asm; this avoids including two different copies of asm.
def cglibVersion = "3.2.11" def cglibVersion = "3.3.0"
def objenesisVersion = "3.0.1" def objenesisVersion = "3.0.1"
configurations { configurations {

2
spring-core/src/main/java/org/springframework/cglib/core/KeyFactory.java

@ -262,7 +262,7 @@ abstract public class KeyFactory {
} }
Type[] parameterTypes = TypeUtils.getTypes(newInstance.getParameterTypes()); Type[] parameterTypes = TypeUtils.getTypes(newInstance.getParameterTypes());
ce.begin_class(Constants.V1_2, ce.begin_class(Constants.V1_8,
Constants.ACC_PUBLIC, Constants.ACC_PUBLIC,
getClassName(), getClassName(),
KEY_FACTORY, KEY_FACTORY,

14
spring-core/src/main/java/org/springframework/cglib/proxy/Enhancer.java

@ -683,7 +683,7 @@ public class Enhancer extends AbstractClassGenerator {
ClassEmitter e = new ClassEmitter(v); ClassEmitter e = new ClassEmitter(v);
if (currentData == null) { if (currentData == null) {
e.begin_class(Constants.V1_2, e.begin_class(Constants.V1_8,
Constants.ACC_PUBLIC, Constants.ACC_PUBLIC,
getClassName(), getClassName(),
Type.getType(sc), Type.getType(sc),
@ -693,7 +693,7 @@ public class Enhancer extends AbstractClassGenerator {
Constants.SOURCE_FILE); Constants.SOURCE_FILE);
} }
else { else {
e.begin_class(Constants.V1_2, e.begin_class(Constants.V1_8,
Constants.ACC_PUBLIC, Constants.ACC_PUBLIC,
getClassName(), getClassName(),
null, null,
@ -1118,7 +1118,7 @@ public class Enhancer extends AbstractClassGenerator {
CodeEmitter e = ce.begin_method(Constants.ACC_PUBLIC, NEW_INSTANCE, null); CodeEmitter e = ce.begin_method(Constants.ACC_PUBLIC, NEW_INSTANCE, null);
Type thisType = getThisType(e); Type thisType = getThisType(e);
e.load_arg(0); e.load_arg(0);
e.invoke_static(thisType, SET_THREAD_CALLBACKS); e.invoke_static(thisType, SET_THREAD_CALLBACKS, false);
emitCommonNewInstance(e); emitCommonNewInstance(e);
} }
@ -1137,7 +1137,7 @@ public class Enhancer extends AbstractClassGenerator {
e.dup(); e.dup();
e.invoke_constructor(thisType); e.invoke_constructor(thisType);
e.aconst_null(); e.aconst_null();
e.invoke_static(thisType, SET_THREAD_CALLBACKS); e.invoke_static(thisType, SET_THREAD_CALLBACKS, false);
e.return_value(); e.return_value();
e.end_method(); e.end_method();
} }
@ -1156,7 +1156,7 @@ public class Enhancer extends AbstractClassGenerator {
e.push(0); e.push(0);
e.load_arg(0); e.load_arg(0);
e.aastore(); e.aastore();
e.invoke_static(getThisType(e), SET_THREAD_CALLBACKS); e.invoke_static(getThisType(e), SET_THREAD_CALLBACKS, false);
break; break;
default: default:
e.throw_exception(ILLEGAL_STATE_EXCEPTION, "More than one callback object required"); e.throw_exception(ILLEGAL_STATE_EXCEPTION, "More than one callback object required");
@ -1168,7 +1168,7 @@ public class Enhancer extends AbstractClassGenerator {
final CodeEmitter e = ce.begin_method(Constants.ACC_PUBLIC, MULTIARG_NEW_INSTANCE, null); final CodeEmitter e = ce.begin_method(Constants.ACC_PUBLIC, MULTIARG_NEW_INSTANCE, null);
final Type thisType = getThisType(e); final Type thisType = getThisType(e);
e.load_arg(2); e.load_arg(2);
e.invoke_static(thisType, SET_THREAD_CALLBACKS); e.invoke_static(thisType, SET_THREAD_CALLBACKS, false);
e.new_instance(thisType); e.new_instance(thisType);
e.dup(); e.dup();
e.load_arg(0); e.load_arg(0);
@ -1191,7 +1191,7 @@ public class Enhancer extends AbstractClassGenerator {
} }
}); });
e.aconst_null(); e.aconst_null();
e.invoke_static(thisType, SET_THREAD_CALLBACKS); e.invoke_static(thisType, SET_THREAD_CALLBACKS, false);
e.return_value(); e.return_value();
e.end_method(); e.end_method();
} }

Loading…
Cancel
Save