Author: rr
Date: Fri May 21 03:50:29 2010
New Revision: 946860

URL: http://svn.apache.org/viewvc?rev=946860&view=rev
Log:
ODE-822: In pmapi - garbage filter for instances select everything (fix, thanks 
to Anurag Aggarwal)

Modified:
    ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/common/Filter.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java

Modified: 
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/common/Filter.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/common/Filter.java?rev=946860&r1=946859&r2=946860&view=diff
==============================================================================
--- ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/common/Filter.java 
(original)
+++ ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/common/Filter.java Fri 
May 21 03:50:29 2010
@@ -49,7 +49,7 @@ public abstract class Filter<FKEY extend
    *  The not-equal op, '<>' works only with pids.
    *  </p>
    */
-  private static final Pattern __comparatorPattern = 
+  public static final Pattern __comparatorPattern = 
     Pattern.compile("([^=<> ]*) *(<>|<=|>=|<|>|=) *([^=<> ]*)");
 
   protected Map<FKEY, Restriction<String>> _criteria = new 
HashMap<FKEY,Restriction<String>>();

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java?rev=946860&r1=946859&r2=946860&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
 Fri May 21 03:50:29 2010
@@ -33,6 +33,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.xml.namespace.QName;
@@ -337,9 +338,23 @@ public class ProcessAndInstanceManagemen
         return ret;
     }
 
+    private boolean garbage(String filter) {
+       if(filter == null) {
+               return false;
+       }
+        Matcher expressionMatcher = 
Filter.__comparatorPattern.matcher(filter);        
+        if(!filter.trim().equals("") && !expressionMatcher.find()) {
+               return true;
+        }
+        return false;
+    }
+        
     public InstanceInfoListDocument listInstances(String filter, String order, 
int limit) {
         InstanceInfoListDocument ret = 
InstanceInfoListDocument.Factory.newInstance();
         final TInstanceInfoList infolist = ret.addNewInstanceInfoList();
+        if(garbage(filter)) {
+               return ret;
+        }
         final InstanceFilter instanceFilter = new InstanceFilter(filter, 
order, limit);
         try {
             _db.exec(new BpelDatabase.Callable<Object>() {
@@ -361,6 +376,9 @@ public class ProcessAndInstanceManagemen
     public InstanceInfoListDocument listInstancesSummary(String filter, String 
order, int limit) {
         InstanceInfoListDocument ret = 
InstanceInfoListDocument.Factory.newInstance();
         final TInstanceInfoList infolist = ret.addNewInstanceInfoList();
+        if(garbage(filter)) {
+               return ret;
+        }
         final InstanceFilter instanceFilter = new InstanceFilter(filter, 
order, limit);
         try {
             _db.exec(new BpelDatabase.Callable<Object>() {
@@ -519,6 +537,9 @@ public class ProcessAndInstanceManagemen
     public Collection<Long> delete(String filter) {
         final InstanceFilter instanceFilter = new InstanceFilter(filter);
         final List<Long> ret = new LinkedList<Long>();
+        if(garbage(filter)) {
+               return ret;
+        }
         try {
             _db.exec(new BpelDatabase.Callable<Object>() {
                 public Object run(BpelDAOConnection conn) {


Reply via email to