From 7dd97036bf0bb830e374033de38c040e55e5a694 Mon Sep 17 00:00:00 2001 From: clemenso Date: Tue, 28 Dec 2010 14:48:28 +0000 Subject: branches might add non-numerical values after minor version git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@869 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../java/at/gv/egiz/bku/webstart/Configurator.java | 10 ++++++++-- .../at/gv/egiz/bku/webstart/ConfiguratorTest.java | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'BKUWebStart/src') diff --git a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Configurator.java b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Configurator.java index c33d6f08..2cf5db79 100644 --- a/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Configurator.java +++ b/BKUWebStart/src/main/java/at/gv/egiz/bku/webstart/Configurator.java @@ -266,7 +266,7 @@ public class Configurator { int majorEndOld = oldVersion.indexOf("-SNAPSHOT"); // 1.0.10-SNAPSHOT-r438, 1.2.12-pinguin-1-SNAPSHOT-r635 if (majorEndOld < 0) { preRelease = false; - majorEndOld = oldVersion.lastIndexOf('-'); // 1.0.10-r439, 1.2.12-pinguin-1-r635 + majorEndOld = oldVersion.lastIndexOf('-'); // 1.0.10-r439, 1.2.12-pinguin-1-r635, 1.3.0-RC2-r611 if (majorEndOld < 0) { majorEndOld = oldVersion.length(); } @@ -282,7 +282,13 @@ public class Configurator { } } - xOld = Integer.valueOf(oldVersion.substring(fromInd, majorEndOld)); + try { + xOld = Integer.valueOf(oldVersion.substring(fromInd, majorEndOld)); + } catch (NumberFormatException ex) { + log.warn("{} seems to be a branch version, do not update", oldVersion); + log.debug(ex.getMessage(), ex); + return false; + } boolean hasMoreDigitsMin = true; nextIndMin = minVersion.indexOf('.', fromInd); if (nextIndMin < 0) { diff --git a/BKUWebStart/src/test/java/at/gv/egiz/bku/webstart/ConfiguratorTest.java b/BKUWebStart/src/test/java/at/gv/egiz/bku/webstart/ConfiguratorTest.java index 12b17a44..c97197c6 100644 --- a/BKUWebStart/src/test/java/at/gv/egiz/bku/webstart/ConfiguratorTest.java +++ b/BKUWebStart/src/test/java/at/gv/egiz/bku/webstart/ConfiguratorTest.java @@ -176,6 +176,26 @@ public class ConfiguratorTest { result = Configurator.updateRequired(oldVersion, minVersion); assertEquals(expResult, result); + //no update for branch versions + oldVersion = "1.2.13-pinguin-1"; + minVersion = "1.2.14"; + expResult = false; + result = Configurator.updateRequired(oldVersion, minVersion); + assertEquals(expResult, result); + + //... but for major version changes + oldVersion = "1.2.13-pinguin-1"; + minVersion = "1.3.0"; + expResult = true; + result = Configurator.updateRequired(oldVersion, minVersion); + assertEquals(expResult, result); + + oldVersion = "1.3.0-RC2-r611"; + minVersion = "1.3.0"; + expResult = false; + result = Configurator.updateRequired(oldVersion, minVersion); + assertEquals(expResult, result); + oldVersion = "1"; minVersion = "2"; expResult = true; -- cgit v1.2.3