diff -Nru shimdandy-1.2.0/api/pom.xml shimdandy-1.2.1/api/pom.xml --- shimdandy-1.2.0/api/pom.xml 2015-10-23 17:48:27.000000000 +0000 +++ shimdandy-1.2.1/api/pom.xml 2018-05-07 00:27:49.000000000 +0000 @@ -4,11 +4,11 @@ org.projectodd.shimdandy shimdandy-parent - 1.2.0 + 1.2.1 org.projectodd.shimdandy shimdandy-api - 1.2.0 + 1.2.1 shimdandy-api shimdandy API diff -Nru shimdandy-1.2.0/CHANGELOG.md shimdandy-1.2.1/CHANGELOG.md --- shimdandy-1.2.0/CHANGELOG.md 1970-01-01 00:00:00.000000000 +0000 +++ shimdandy-1.2.1/CHANGELOG.md 2018-05-07 00:27:49.000000000 +0000 @@ -0,0 +1,13 @@ +## 1.2.1 + +* Don't throw an NPE when Clojure isn't on the classloader's effective + classpath + +## 1.2.0 (2015-10-23) + +* Add `close()` that shuts down the agent pool +* Clear `Var.dvals` at the top of the call stack + +## 1.1.0 (2015-01-09) + +* Pre-history diff -Nru shimdandy-1.2.0/debian/changelog shimdandy-1.2.1/debian/changelog --- shimdandy-1.2.0/debian/changelog 2019-03-19 13:42:47.000000000 +0000 +++ shimdandy-1.2.1/debian/changelog 2019-07-17 18:32:03.000000000 +0000 @@ -1,3 +1,9 @@ +shimdandy (1.2.1-1) unstable; urgency=medium + + * New upstream version + + -- Tom Marble Wed, 17 Jul 2019 13:32:03 -0500 + shimdandy (1.2.0-3) unstable; urgency=medium * Build with Clojure 1.10 (Closes: #924495) diff -Nru shimdandy-1.2.0/debian/control shimdandy-1.2.1/debian/control --- shimdandy-1.2.0/debian/control 2018-02-19 20:38:09.000000000 +0000 +++ shimdandy-1.2.1/debian/control 2019-07-17 18:32:03.000000000 +0000 @@ -5,8 +5,8 @@ Uploaders: Tom Marble Build-Depends: debhelper (>= 11), default-jdk, maven-debian-helper (>= 2.1), libclojure-java (>= 1.9~) Standards-Version: 4.1.3 -Vcs-Git: https://anonscm.debian.org/git/pkg-java/shimdandy.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/shimdandy.git +Vcs-Git: https://salsa.debian.org/java-team/shimdandy +Vcs-Browser: https://salsa.debian.org/java-team/shimdandy Homepage: https://github.com/projectodd/shimdandy Package: libshimdandy-java diff -Nru shimdandy-1.2.0/debian/patches/exclude-parent-pom.patch shimdandy-1.2.1/debian/patches/exclude-parent-pom.patch --- shimdandy-1.2.0/debian/patches/exclude-parent-pom.patch 2017-08-14 14:33:51.000000000 +0000 +++ shimdandy-1.2.1/debian/patches/exclude-parent-pom.patch 2019-07-17 18:32:03.000000000 +0000 @@ -1,7 +1,7 @@ Index: shimdandy/api/pom.xml =================================================================== ---- shimdandy.orig/api/pom.xml 2017-08-11 13:15:02.222056043 -0500 -+++ shimdandy/api/pom.xml 2017-08-11 13:35:43.564909406 -0500 +--- shimdandy.orig/api/pom.xml 2019-07-17 14:59:39.054787058 -0500 ++++ shimdandy/api/pom.xml 2019-07-17 15:05:00.545645602 -0500 @@ -1,11 +1,6 @@ @@ -9,15 +9,15 @@ - - org.projectodd.shimdandy - shimdandy-parent -- 1.2.0 +- 1.2.1 - org.projectodd.shimdandy shimdandy-api - 1.2.0 + 1.2.1 Index: shimdandy/impl/pom.xml =================================================================== ---- shimdandy.orig/impl/pom.xml 2017-08-11 13:15:02.222056043 -0500 -+++ shimdandy/impl/pom.xml 2017-08-11 13:35:59.044943526 -0500 +--- shimdandy.orig/impl/pom.xml 2019-07-17 14:59:39.054787058 -0500 ++++ shimdandy/impl/pom.xml 2019-07-17 15:05:01.021649335 -0500 @@ -1,11 +1,6 @@ @@ -25,8 +25,8 @@ - - org.projectodd.shimdandy - shimdandy-parent -- 1.2.0 +- 1.2.1 - org.projectodd.shimdandy shimdandy-impl - 1.2.0 + 1.2.1 diff -Nru shimdandy-1.2.0/debian/patches/parent-pom.patch shimdandy-1.2.1/debian/patches/parent-pom.patch --- shimdandy-1.2.0/debian/patches/parent-pom.patch 1970-01-01 00:00:00.000000000 +0000 +++ shimdandy-1.2.1/debian/patches/parent-pom.patch 2019-07-17 18:32:03.000000000 +0000 @@ -0,0 +1,48 @@ +updates clojure version to 1.10.x, removes unused staging deps +Index: shimdandy/pom.xml +=================================================================== +--- shimdandy.orig/pom.xml 2019-07-17 14:44:22.026133989 -0500 ++++ shimdandy/pom.xml 2019-07-21 09:30:59.060638254 -0500 +@@ -41,7 +41,7 @@ + + + UTF-8 +- 1.7.0-alpha4 ++ 1.10.x + + + +@@ -59,33 +59,4 @@ + impl + + +- +- +- +- org.sonatype.plugins +- nexus-staging-maven-plugin +- 1.6.3 +- true +- +- sonatype-nexus-staging +- https://oss.sonatype.org/ +- true +- +- +- +- +- +- +- +- sonatype-nexus-staging +- Nexus Staging Repo +- https://oss.sonatype.org/service/local/staging/deploy/maven2/ +- +- +- sonatype-nexus-snapshots +- Nexus Snapshot Repo +- https://oss.sonatype.org/content/repositories/snapshots/ +- +- +- + diff -Nru shimdandy-1.2.0/debian/patches/series shimdandy-1.2.1/debian/patches/series --- shimdandy-1.2.0/debian/patches/series 2017-08-14 14:33:51.000000000 +0000 +++ shimdandy-1.2.1/debian/patches/series 2019-07-17 18:32:03.000000000 +0000 @@ -1 +1,2 @@ exclude-parent-pom.patch +parent-pom.patch diff -Nru shimdandy-1.2.0/impl/pom.xml shimdandy-1.2.1/impl/pom.xml --- shimdandy-1.2.0/impl/pom.xml 2015-10-23 17:48:27.000000000 +0000 +++ shimdandy-1.2.1/impl/pom.xml 2018-05-07 00:27:49.000000000 +0000 @@ -4,11 +4,11 @@ org.projectodd.shimdandy shimdandy-parent - 1.2.0 + 1.2.1 org.projectodd.shimdandy shimdandy-impl - 1.2.0 + 1.2.1 shimdandy-impl shimdandy Implementation diff -Nru shimdandy-1.2.0/impl/src/main/java/org/projectodd/shimdandy/impl/ClojureRuntimeShimImpl.java shimdandy-1.2.1/impl/src/main/java/org/projectodd/shimdandy/impl/ClojureRuntimeShimImpl.java --- shimdandy-1.2.0/impl/src/main/java/org/projectodd/shimdandy/impl/ClojureRuntimeShimImpl.java 2015-10-23 17:48:27.000000000 +0000 +++ shimdandy-1.2.1/impl/src/main/java/org/projectodd/shimdandy/impl/ClojureRuntimeShimImpl.java 2018-05-07 00:27:49.000000000 +0000 @@ -14,7 +14,6 @@ public class ClojureRuntimeShimImpl extends ClojureRuntimeShim { public void init() { ClassLoader origLoader = preInvoke(); - Exception ex = null; try { Field dvalField = Var.class.getDeclaredField("dvals"); dvalField.setAccessible(true); @@ -23,17 +22,11 @@ this.require = RT.var("clojure.core", "require"); this.resolve = RT.var("clojure.core", "resolve"); clojure.lang.Compiler.LOADER.bindRoot(this.classLoader); - } catch (IllegalAccessException e) { - ex = e; - } catch (NoSuchFieldException e) { - ex = e; + } catch (Exception e) { + throw new RuntimeException("Failed to initialize ClojureRuntimeShimImpl", e); } finally { postInvoke(origLoader); } - - if (ex != null) { - throw new RuntimeException("Failed to access Var.dvals", ex); - } } protected ClassLoader preInvoke() { @@ -46,7 +39,9 @@ protected void postInvoke(ClassLoader loader) { if (this.callDepth.get().decrementAndGet() == 0) { - this.dvals.remove(); + if (this.dvals != null) { + this.dvals.remove(); + } this.callDepth.remove(); } Thread.currentThread().setContextClassLoader(loader); diff -Nru shimdandy-1.2.0/pom.xml shimdandy-1.2.1/pom.xml --- shimdandy-1.2.0/pom.xml 2015-10-23 17:48:27.000000000 +0000 +++ shimdandy-1.2.1/pom.xml 2018-05-07 00:27:49.000000000 +0000 @@ -4,7 +4,7 @@ org.projectodd.shimdandy shimdandy-parent - 1.2.0 + 1.2.1 pom Shimdandy parent POM @@ -59,17 +59,33 @@ impl - - - sonatype-nexus-staging - Nexus Staging Repo - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - sonatype-nexus-snapshots - Nexus Snapshot Repo - https://oss.sonatype.org/content/repositories/snapshots/ - - + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.3 + true + + sonatype-nexus-staging + https://oss.sonatype.org/ + true + + + + + + + + sonatype-nexus-staging + Nexus Staging Repo + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + sonatype-nexus-snapshots + Nexus Snapshot Repo + https://oss.sonatype.org/content/repositories/snapshots/ + + diff -Nru shimdandy-1.2.0/README.md shimdandy-1.2.1/README.md --- shimdandy-1.2.0/README.md 2015-10-23 17:48:27.000000000 +0000 +++ shimdandy-1.2.1/README.md 2018-05-07 00:27:49.000000000 +0000 @@ -12,8 +12,8 @@ ## Usage The project provides two artifacts: `shimdandy-api.jar` and -`shimdandy-impl.jar`. `shimdandy-api` can be on the boot classpath of -your app, but `shimdandy-impl` should not be on the boot classpath or +`shimdandy-impl.jar`. `shimdandy-api` can be on the classpath of +your app, but `shimdandy-impl` should not be on the classpath or exposed to any ClassLoader initially. Nor should any Clojure jars - having a Clojure jar on the classpath will cause the RT from that jar (and only that RT) to be loaded, preventing isolation.