Author: yradtsevich
Date: 2009-01-19 12:11:26 -0500 (Mon, 19 Jan 2009)
New Revision: 13126
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/expression/VpeFunctionTldVersionCheck.java
Log:
RESOLVED - issue JBIDE-3586: java.lang.NumberFormatException then calling rich:editor.
https://jira.jboss.org/jira/browse/JBIDE-3586
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/expression/VpeFunctionTldVersionCheck.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/expression/VpeFunctionTldVersionCheck.java 2009-01-19
15:56:30 UTC (rev 13125)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/expression/VpeFunctionTldVersionCheck.java 2009-01-19
17:11:26 UTC (rev 13126)
@@ -10,8 +10,6 @@
******************************************************************************/
package org.jboss.tools.vpe.editor.template.expression;
-import java.text.DecimalFormat;
-import java.text.ParseException;
import java.util.List;
import org.eclipse.core.resources.IProject;
@@ -95,7 +93,7 @@
double tldVersionNumber =0;
if(tldVersion!=null) {
- tldVersionNumber = Double.parseDouble(tldVersion);
+ tldVersionNumber = stringVersionToDouble(tldVersion);
} else {
//here we getting tld version for xhtml files
@@ -116,7 +114,7 @@
xm);
if(tldVersion!=null) {
- tldVersionNumber = Double.parseDouble(tldVersion);
+ tldVersionNumber = stringVersionToDouble(tldVersion);
} else {
tldVersionNumber = 0;
}
@@ -135,7 +133,7 @@
try {
if(tagValue.indexOf(MIN_VERSION_KEYWORD)!=-1){
- return
Double.parseDouble(tagValue.substring(tagValue.indexOf(MIN_VERSION_KEYWORD)+4));
+ return
stringVersionToDouble(tagValue.substring(tagValue.indexOf(MIN_VERSION_KEYWORD)+4));
} else {
return (-1)*Double.MAX_VALUE;
@@ -151,7 +149,7 @@
try{
if(tagValue.indexOf(MAX_VERSION_KEYWORD)!=-1) {
- return
Double.parseDouble(tagValue.substring(tagValue.indexOf(MAX_VERSION_KEYWORD)+4));
+ return
stringVersionToDouble(tagValue.substring(tagValue.indexOf(MAX_VERSION_KEYWORD)+4));
}else {
return Double.MAX_VALUE;
}
@@ -160,4 +158,38 @@
}
return Double.MAX_VALUE;
}
+
+ /**
+ * Converts {@code sVersion} representing version of a library to
+ * {@code double} value.
+ *
+ * @deprecated it does not make difference between incremental versions
+ * like 1.2.0 and 1.2.1. This method have to be replaced by a more complicated
+ * version-comparator like [<a
href="http://maven.apache.org/ref/current/maven-artifact/apidocs/org...>]
+ */
+ private double stringVersionToDouble(String sVersion) {
+ String tokens[] = sVersion.split("\\.");
+
+ String parseableVersion;
+ switch (tokens.length) {
+ case 0:
+ parseableVersion = "0"; //$NON-NLS-N$
+ break;
+ case 1:
+ parseableVersion = tokens[0];
+ break;
+ case 2: default:
+ parseableVersion = tokens[0] + '.' + tokens[1];
+ break;
+ }
+
+ double dVersion;
+ try {
+ dVersion = Double.parseDouble(parseableVersion);
+ } catch (Exception e) {
+ dVersion = 0.0;
+ }
+
+ return dVersion;
+ }
}