* @return Number of activeclients at the time of the 'show' command\r
*/\r
public String update (String commands) {\r
+ try {\r
if (! errors.hasConfigurationErrors()) {\r
if (commandsAreValid(commands)) {\r
- if (hasQuery() || (commands.equals("record") && pzreq.getCommand("record").hasParameterSet("recordquery"))) {\r
+ if (hasQuery() || (commands.equals("record") && pzreq.getCommand("record").hasParameterValue("recordquery"))) {\r
handleQueryStateChanges(commands);\r
logger.debug("Processing request for " + commands); \r
List<CommandThread> threadList = new ArrayList<CommandThread>();\r
String response = thread.getResponse();\r
responseLogger.debug("Response was: " + response);\r
Pazpar2ResponseData responseObject = Pazpar2ResponseParser.getParser().getDataObject(response);\r
- pzresp.put(commandName, responseObject); \r
+ if (Pazpar2ResponseParser.docTypes.contains(responseObject.getType())) {\r
+ pzresp.put(commandName, responseObject);\r
+ } else {\r
+ if (commandName.equals("record") && pzreq.getRecord().hasParameterValue("offset")) {\r
+ RecordResponse recordResponse = new RecordResponse();\r
+ recordResponse.setType("record");\r
+ recordResponse.setXml(responseObject.getXml());\r
+ recordResponse.setAttribute("activeclients", "0");\r
+ pzresp.put(commandName, recordResponse);\r
+ }\r
+ }\r
}\r
- if (commands.equals("record")) { \r
- logger.debug("Record: Active clients: "+pzresp.getRecord().getActiveClients());\r
+ if (commands.equals("record")) {\r
return pzresp.getRecord().getActiveClients();\r
} else {\r
return pzresp.getActiveClients();\r
logger.error("Did not attempt to execute query since there are configuration errors.");\r
return "0";\r
}\r
+ } catch (ClassCastException cce) {\r
+ cce.printStackTrace(); \r
+ return "";\r
+ } catch (NullPointerException npe) {\r
+ npe.printStackTrace();\r
+ return "";\r
+ }\r
\r
}\r
\r
public boolean commandsAreValid(String commands) {\r
if (commands.equals("record")) {\r
- if (!pzreq.getCommand("record").hasParameterSet("id")) {\r
+ if (!pzreq.getCommand("record").hasParameterValue("id")) {\r
logger.error("Attempt to send record command without the id parameter");\r
return false;\r
}\r
}\r
\r
protected boolean hasQuery() { \r
- return pzreq.getCommand("search").hasParameterSet("query"); \r
+ return pzreq.getCommand("search").hasParameterValue("query"); \r
}\r
\r
\r
if (stateMgr.hasPendingStateChange("record") && ! commands.equals("record")) { \r
logger.debug("Found pending record ID change. Doing record before updating " + commands);\r
stateMgr.hasPendingStateChange("record",false);\r
- if (pzreq.getCommand("record").hasParameterSet("id")) {\r
+ if (pzreq.getCommand("record").hasParameterValue("id")) {\r
update("record");\r
} else { \r
pzresp.put("record", new RecordResponse());\r