Fix for #239560
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/ModelQuery.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/ModelQuery.java
index 57ba578..073762e 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/ModelQuery.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/ModelQuery.java
@@ -117,13 +117,18 @@
Object v1 = n1.nodeValue();
Object v2 = n2.nodeValue();
- if (v1 != null) {
- return v1.equals (v2) ;
- } else if (v2 != null) {
- return v2.equals(v1) ;
- } else {
+ // both identical or null
+ if (v1 == v2) {
return true;
}
+
+ // not identical and *not* both null.
+ if (v1 != null) {
+ return v1.equals(v2);
+ }
+ // v1 is null and not identical to v2 so false.
+ return false;
+
case TEST_COMPATIBLE_PARTNER_ACTIVITY_MESSAGE:
// n1 is source
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java
index 2af5ce3..c8489a2 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java
@@ -135,14 +135,18 @@
Object v1 = n1.nodeValue();
Object v2 = n2.nodeValue();
-
- if (v1 != null) {
- return v1.equals (v2) ;
- } else if (v2 != null) {
- return v2.equals(v1) ;
- } else {
+
+ // both identical or null
+ if (v1 == v2) {
return true;
}
+
+ // not identical and *not* both null.
+ if (v1 != null) {
+ return v1.equals(v2);
+ }
+ // v1 is null and not identical to v2 so false.
+ return false;
case TEST_COMPATIBLE_PARTNER_ACTIVITY_MESSAGE:
// n1 is source
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filter.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filter.java
index b7e3212..a79e5bf 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filter.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filter.java
@@ -38,7 +38,12 @@
fName = name;
}
- static protected Comparator<QName> QNAME_COMPARATOR = new Comparator<QName>() {
+ /**
+ * Comparator for QNames.
+ *
+ */
+
+ public static Comparator<QName> QNAME_COMPARATOR = new Comparator<QName>() {
public int compare(QName o1, QName o2) {
int result = o1.getLocalPart().compareTo(o2.getLocalPart());
@@ -47,10 +52,17 @@
}
return result;
}
-
-
};
-
+
+ /**
+ *
+ */
+ public static Comparator<String> STRING_COMPARATOR = new Comparator<String>() {
+
+ public int compare(String o1, String o2) {
+ return o1.compareTo(o2);
+ }
+ };
/**
* Create a readable values list.
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filters.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filters.java
index 79b4828..5d141ae 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filters.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/Filters.java
@@ -37,16 +37,16 @@
public static final IFilter<INode> FLOW = new NodeNameFilter( ND_FLOW );
/** Boolean filter values */
- static public final IFilter<String> BOOLEAN_FILTER = new ValueFilter<String> ( BOOLEAN_VALUES );
+ static public final IFilter<String> BOOLEAN_FILTER = new ValueFilter<String> ( Filter.STRING_COMPARATOR, BOOLEAN_VALUES );
/** Initiate filter values */
- public static final IFilter<String> INITIATE_FILTER = new ValueFilter<String> (INITIATE_VALUES);
+ public static final IFilter<String> INITIATE_FILTER = new ValueFilter<String> (Filter.STRING_COMPARATOR,INITIATE_VALUES);
/** End point values */
- public static final IFilter<String> ENDPOINT_FILTER = new ValueFilter<String> (ENDPOINT_VALUES);
+ public static final IFilter<String> ENDPOINT_FILTER = new ValueFilter<String> (Filter.STRING_COMPARATOR,ENDPOINT_VALUES);
/** Correlation pattern values */
- public static final IFilter<String> PATTERN_FILTER = new ValueFilter<String> ( PATTERN_VALUES );
+ public static final IFilter<String> PATTERN_FILTER = new ValueFilter<String> ( Filter.STRING_COMPARATOR,PATTERN_VALUES );
/** Repeatable nodes */
public static final IFilter<INode> REPEATABLE_CONSTRUCT = new NodeNameFilter ( REPEATABLE_NODES );
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/ValueFilter.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/ValueFilter.java
index df8d685..7e503ba 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/ValueFilter.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/model/ValueFilter.java
@@ -26,18 +26,7 @@
T[] fList;
Comparator<T> fComparator;
-
- /**
- * Create a filer for the values indicated.
- *
- * @param values
- */
-
- public ValueFilter (T... values) {
- fList = values;
- Arrays.sort(fList);
- }
-
+
/**
* @param comparator
* @param values
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CValidator.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CValidator.java
index 32dec39..5631b1c 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CValidator.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CValidator.java
@@ -34,7 +34,6 @@
*/
@SuppressWarnings("nls")
-
public class CValidator extends Validator {
/** The parent node */
@@ -136,8 +135,7 @@
* @param min
* @param max
* @return the number of occurrences of this child.
- */
- @SuppressWarnings("nls")
+ */
public int checkChild (QName node, int min, int max) {
return checkChild ( new NodeNameFilter(node),min,max) ;
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchAllValidator.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchAllValidator.java
index 090e17c..fbe4f71 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchAllValidator.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchAllValidator.java
@@ -22,8 +22,6 @@
*
*/
-@SuppressWarnings("nls")
-
public class CatchAllValidator extends CValidator {
/**
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchValidator.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchValidator.java
index 3d52fed..807a76f 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchValidator.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/CatchValidator.java
@@ -13,6 +13,7 @@
import javax.xml.namespace.QName;
+import org.eclipse.bpel.validator.model.Filter;
import org.eclipse.bpel.validator.model.Filters;
import org.eclipse.bpel.validator.model.IFilter;
import org.eclipse.bpel.validator.model.IModelQueryLookups;
@@ -30,10 +31,7 @@
*/
@SuppressWarnings({"nls","boxing"})
-
public class CatchValidator extends CatchAllValidator {
-
-
protected String fFaultName;
@@ -101,6 +99,7 @@
static IFilter<QName> TYPE_DEFS = new ValueFilter<QName> (
+ Filter.QNAME_COMPARATOR,
AT_FAULT_MESSAGE_TYPE, AT_FAULT_ELEMENT
);
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ConditionValidator.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ConditionValidator.java
index 3a32686..4c4f899 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ConditionValidator.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/ConditionValidator.java
@@ -30,7 +30,7 @@
*
*/
-
+@SuppressWarnings("nls")
public class ConditionValidator extends CValidator {
/** list of my parents */
@@ -63,6 +63,7 @@
* Checks the expression language attribute for support in the model.
*/
+
@ARule(
author = "michal.chmielewski@oracle.com",
desc = "Checks the expression language for support in the BPEL model",
@@ -80,7 +81,7 @@
problem = createError();
problem.fill(
- "BPELC__UNSUPPORTED_XML_LANG", //$NON-NLS-1$
+ "BPELC__UNSUPPORTED_XML_LANG",
AT_EXPRESSIONLANGUAGE,
fExpressionLanguage);
diff --git a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/OnEventValidator.java b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/OnEventValidator.java
index 48266e7..e15db44 100644
--- a/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/OnEventValidator.java
+++ b/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/rules/OnEventValidator.java
@@ -16,6 +16,7 @@
import org.eclipse.bpel.validator.model.ARule;
+import org.eclipse.bpel.validator.model.Filter;
import org.eclipse.bpel.validator.model.Filters;
import org.eclipse.bpel.validator.model.IFilter;
import org.eclipse.bpel.validator.model.IModelQueryLookups;
@@ -48,15 +49,12 @@
/**
- * Validate the receive activity.
- *
* @author Michal Chmielewski (michal.chmielewski@oracle.com)
- * @date Sep 25, 2006
+ * @date Aug 28, 2008
*
*/
@SuppressWarnings( {"hiding","nls","boxing"} )
-
public class OnEventValidator extends CPartnerActivityValidator {
@@ -152,7 +150,9 @@
- static IFilter<QName> TYPE_DEFS = new ValueFilter<QName>( AT_MESSAGE_TYPE, AT_ELEMENT);
+ static IFilter<QName> TYPE_DEFS = new ValueFilter<QName>(
+ Filter.QNAME_COMPARATOR,
+ AT_MESSAGE_TYPE, AT_ELEMENT);
/**