From e5a5f1233a9c30dbc0e64d975efd7a9a36898f4a Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Mon, 9 Nov 2020 07:20:37 +0100 Subject: [PATCH] IDEMPIERE-4533 Problem when changing a plugin from AdempiereActivator to Incremental2PackActivator (#362) --- .../org/adempiere/plugin/utils/Version.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/Version.java b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/Version.java index d511a1f786..eec1cfb06c 100644 --- a/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/Version.java +++ b/org.adempiere.plugin.utils/src/org/adempiere/plugin/utils/Version.java @@ -40,10 +40,22 @@ public class Version implements Comparable { String[] thatParts = that.get().split("\\."); int length = Math.max(thisParts.length, thatParts.length); for(int i = 0; i < length; i++) { - int thisPart = i < thisParts.length ? - Integer.parseInt(thisParts[i]) : 0; - int thatPart = i < thatParts.length ? - Integer.parseInt(thatParts[i]) : 0; + if (i < thisParts.length && i < thatParts.length && thisParts[i].equals(thatParts[i])) + continue; + int thisPart; + try { + thisPart = i < thisParts.length ? + Integer.parseInt(thisParts[i]) : 0; + } catch (NumberFormatException e) { + thisPart = -1; + } + int thatPart; + try { + thatPart = i < thatParts.length ? + Integer.parseInt(thatParts[i]) : 0; + } catch (NumberFormatException e) { + thatPart = -2; // above was determined that both parts are different + } if(thisPart < thatPart) return -1; if(thisPart > thatPart)