diff --git a/package.json b/package.json
index b2f14826c5..8034538536 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,8 @@
"test": "lerna run --scope '@scm-manager/ui-*' test",
"typecheck": "lerna run --scope '@scm-manager/ui-*' typecheck",
"serve": "webpack-dev-server --mode=development --config=scm-ui/ui-scripts/src/webpack.config.js",
- "deploy": "ui-scripts publish"
+ "deploy": "ui-scripts publish",
+ "version": "ui-scripts version"
},
"devDependencies": {
"babel-plugin-reflow": "^0.2.7",
diff --git a/pom.xml b/pom.xml
index 910287abf0..7a8e16b869 100644
--- a/pom.xml
+++ b/pom.xml
@@ -839,7 +839,7 @@
2.3.0
- 1.5.1
+ 1.6.0
9.4.22.v20191022
diff --git a/scm-ui/ui-scripts/bin/ui-scripts.js b/scm-ui/ui-scripts/bin/ui-scripts.js
index 41549ac27a..28f5ef3315 100755
--- a/scm-ui/ui-scripts/bin/ui-scripts.js
+++ b/scm-ui/ui-scripts/bin/ui-scripts.js
@@ -1,7 +1,7 @@
#!/usr/bin/env node
const { spawnSync } = require("child_process");
-const commands = ["plugin", "plugin-watch", "publish"];
+const commands = ["plugin", "plugin-watch", "publish", "version"];
const args = process.argv.slice(2);
diff --git a/scm-ui/ui-scripts/src/commands/publish.js b/scm-ui/ui-scripts/src/commands/publish.js
index d3cdc60724..2e5ad90440 100644
--- a/scm-ui/ui-scripts/src/commands/publish.js
+++ b/scm-ui/ui-scripts/src/commands/publish.js
@@ -4,7 +4,7 @@ const versions = require("../versions");
const args = process.argv.slice(2);
if (args.length < 1) {
- console.log("usage ui-scripts publish version");
+ console.log("usage ui-scripts publish ");
process.exit(1);
}
diff --git a/scm-ui/ui-scripts/src/commands/version.js b/scm-ui/ui-scripts/src/commands/version.js
new file mode 100644
index 0000000000..c1feb85318
--- /dev/null
+++ b/scm-ui/ui-scripts/src/commands/version.js
@@ -0,0 +1,12 @@
+const lerna = require("../lerna");
+
+const args = process.argv.slice(2);
+
+if (args.length < 1) {
+ console.log("usage ui-scripts version ");
+ process.exit(1);
+}
+
+const version = args[0];
+
+lerna.version(version);
diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java
index 24d1c239b4..de2480f563 100644
--- a/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java
@@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventor;
import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorFactory;
import se.jiderhamn.classloader.leak.prevention.cleanup.MBeanCleanUp;
+import se.jiderhamn.classloader.leak.prevention.cleanup.StopThreadsCleanUp;
import se.jiderhamn.classloader.leak.prevention.preinit.SunAwtAppContextInitiator;
import sonia.scm.lifecycle.LifeCycle;
import sonia.scm.plugin.ChildFirstPluginClassLoader;
@@ -43,6 +44,9 @@ public final class ClassLoaderLifeCycle implements LifeCycle {
classLoaderLeakPreventorFactory.removePreInitiator(SunAwtAppContextInitiator.class);
// the MBeanCleanUp causes a Exception and we use no mbeans
classLoaderLeakPreventorFactory.removeCleanUp(MBeanCleanUp.class);
+ // the StopThreadsCleanUp leads to timeouts on shutdown - we try to stop our threads on our own
+ classLoaderLeakPreventorFactory.removeCleanUp(StopThreadsCleanUp.class);
+
return new ClassLoaderLifeCycle(Thread.currentThread().getContextClassLoader(), classLoaderLeakPreventorFactory);
}