Fixes npe when changing SP URL on the fly
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 5 Apr 2013 16:20:52 +0000 (12:20 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 5 Apr 2013 16:20:52 +0000 (12:20 -0400)
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2ProxyBean.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Session.java

index 72dbccb..0f9e97d 100644 (file)
@@ -74,11 +74,20 @@ public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {
     session().postInit();\r
     return "";\r
   }\r
+  \r
+  public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {\r
+    logger.info("Posting init: " + System.currentTimeMillis());\r
+    session().postInit(initDoc);\r
+    return "";\r
+    \r
+  }\r
 \r
   @Override\r
   public void setServiceProxyUrl(String url) {\r
     logger.info("Setting Service Proxy url: " + url);\r
-    session().setServiceProxyUrl(url);    \r
+    session().setServiceProxyUrl(url); \r
+    session().setQuery(null);\r
+    session().resetDataObjects();\r
   }\r
 \r
   @Override\r
index ed4c088..66063c3 100644 (file)
@@ -107,7 +107,7 @@ public class Pz2Session implements Pz2Interface {
         logger.debug("Processing request for " + commands); \r
         List<CommandThread> threadList = new ArrayList<CommandThread>();\r
         StringTokenizer tokens = new StringTokenizer(commands,",");\r
-        while (tokens.hasMoreElements()) {\r
+        while (tokens.hasMoreElements()) {          \r
           threadList.add(new CommandThread(getCommand(tokens.nextToken()),searchClient));            \r
         }\r
         for (CommandThread thread : threadList) {\r
@@ -353,7 +353,7 @@ public class Pz2Session implements Pz2Interface {
   }\r
   \r
   protected boolean hasQuery() {\r
-    return !(getCommand("search").getParameter("query") == null);\r
+    return getCommand("search").getParameter("query") != null && getCommand("search").getParameter("query").getValueWithExpressions().length()>0;\r
   }\r
     \r
   public boolean hasRecords () {\r
@@ -379,7 +379,7 @@ public class Pz2Session implements Pz2Interface {
   }\r
   \r
   protected void handleQueryStateChanges (String commands) {\r
-    if (queryStates.hasPendingStateChange("search")) { \r
+    if (queryStates.hasPendingStateChange("search") && hasQuery()) { \r
       logger.debug("Found pending search change. Doing search before updating " + commands);      \r
       doSearch();\r
     } \r