From 0ad35053fbb07761c29e55a97563f4aff984426d Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 12 Dec 2018 16:03:31 +0100 Subject: [PATCH] Upgrade to CGLIB 3.2.10 Includes upgrade to JarJar 1.7.2 and Tomcat 9.0.14. Issue: SPR-17595 --- build.gradle | 2 +- spring-core/spring-core.gradle | 4 ++-- .../springframework/cglib/core/AbstractClassGenerator.java | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index c63f998912..3ce735c04a 100644 --- a/build.gradle +++ b/build.gradle @@ -44,7 +44,7 @@ ext { rxjava2Version = "2.2.4" slf4jVersion = "1.7.25" // spring-jcl + consistent 3rd party deps tiles3Version = "3.0.8" - tomcatVersion = "9.0.13" + tomcatVersion = "9.0.14" undertowVersion = "2.0.16.Final" gradleScriptDir = "${rootProject.projectDir}/gradle" diff --git a/spring-core/spring-core.gradle b/spring-core/spring-core.gradle index bce36cd6d4..698ec19ce1 100644 --- a/spring-core/spring-core.gradle +++ b/spring-core/spring-core.gradle @@ -10,7 +10,7 @@ dependencyManagement { // 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 // depend on org.springframework.asm; this avoids including two different copies of asm. -def cglibVersion = "3.2.9" +def cglibVersion = "3.2.10" def objenesisVersion = "3.0.1" configurations { @@ -64,7 +64,7 @@ task objenesisRepackJar(type: Jar) { repackJar -> dependencies { cglib("cglib:cglib:${cglibVersion}@jar") objenesis("org.objenesis:objenesis:${objenesisVersion}@jar") - jarjar("org.pantsbuild:jarjar:1.6.6") + jarjar("org.pantsbuild:jarjar:1.7.2") compile(files(cglibRepackJar)) compile(files(objenesisRepackJar)) diff --git a/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java b/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java index 85a37b60f9..dbb0f74a6b 100644 --- a/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java +++ b/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java @@ -40,6 +40,10 @@ abstract public class AbstractClassGenerator implements ClassGenerator { private static volatile Map CACHE = new WeakHashMap(); + private static final boolean DEFAULT_USE_CACHE = + Boolean.parseBoolean(System.getProperty("cglib.useCache", "true")); + + private GeneratorStrategy strategy = DefaultGeneratorStrategy.INSTANCE; private NamingPolicy namingPolicy = DefaultNamingPolicy.INSTANCE; @@ -54,7 +58,7 @@ abstract public class AbstractClassGenerator implements ClassGenerator { private Object key; - private boolean useCache = true; + private boolean useCache = DEFAULT_USE_CACHE; private String className;