Accepts missing value in filter expr, mkjsf-16
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Thu, 7 May 2015 10:16:47 +0000 (12:16 +0200)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Thu, 7 May 2015 10:16:47 +0000 (12:16 +0200)
Would raise JSF/Ajax error on SearchCommand.filter attribute when
entering 'pz:id=' (for instance). This is a legitimate interim entry
however, since the user could leave the field in that state to cut and
paste a target ID from somewhere else.

A value of 'pz:id=' at time of search would currently result in
'no targets' error from pazpar2.

src/main/java/com/indexdata/mkjsf/pazpar2/commands/Expression.java

index 1961bae..af10e9b 100644 (file)
@@ -56,10 +56,14 @@ public class Expression implements Serializable {
    */\r
   public Expression (String expressionString) {\r
     String[] parts = expressionString.split("[=~]");\r
    */\r
   public Expression (String expressionString) {\r
     String[] parts = expressionString.split("[=~]");\r
-    this.leftEntity = parts[0];\r
-    this.operator = expressionString.contains("=") ? "=" : "~";\r
-    this.rightEntity = parts[1];\r
-    this.label=rightEntity;\r
+    if (parts.length>0) {\r
+      this.leftEntity = parts[0];\r
+      this.operator = expressionString.contains("=") ? "=" : "~";\r
+    }\r
+    if (parts.length>1) {\r
+      this.rightEntity = parts[1];\r
+      this.label=rightEntity;\r
+    }\r
   }\r
   \r
   /** \r
   }\r
   \r
   /** \r