X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FRecordCommand.java;h=50e33d1c4709547e7992e7fd8013dd51653523fa;hb=5745961a862c1f07e9abcb084f43c205f01631be;hp=e52afac2f9c668fe7d5e463217088106ef5147ea;hpb=11ff48b9d37193a89a4b74da75db8c58415c46a6;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java index e52afac..50e33d1 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java @@ -22,31 +22,37 @@ public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand @Override public ResponseDataObject run() { - HttpResponseWrapper commandResponse = Pz2Bean.get().getSearchClient().executeCommand(this); ResponseDataObject responseObject = null; - if (commandResponse.getContentType().contains("xml")) { - responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)commandResponse); - if (ResponseParser.docTypes.contains(responseObject.getType())) { - logger.debug("Storing " + responseObject.getType() + " in pzresp. "); - } else { - logger.debug("Command was 'record' but response not '' - assuming raw record response."); - ResponseDataObject recordResponse = new RecordResponse(); - recordResponse.setType("record"); - recordResponse.setXml(responseObject.getXml()); - recordResponse.setAttribute("activeclients", "0"); - } - } else if (commandResponse.isBinary()) { - responseObject = new RecordResponse(); - responseObject.setType(getCommandName()); - logger.info("Binary response"); - responseObject.setAttribute("activeclients", "0"); - responseObject.setXml("binary response"); - responseObject.setBinary(commandResponse.getBytes()); + if (hasParameterValue("id")) { + HttpResponseWrapper commandResponse = Pz2Bean.get().getSearchClient().executeCommand(this); + if (commandResponse.getContentType().contains("xml")) { + responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)commandResponse); + if (ResponseParser.docTypes.contains(responseObject.getType())) { + logger.debug("Storing " + responseObject.getType() + " in pzresp. "); + } else { + logger.debug("Command was 'record' but response not '' - assuming raw record response."); + ResponseDataObject recordResponse = new RecordResponse(); + recordResponse.setType("record"); + recordResponse.setXml(responseObject.getXml()); + recordResponse.setAttribute("activeclients", "0"); + } + } else if (commandResponse.isBinary()) { + responseObject = new RecordResponse(); + responseObject.setType(getCommandName()); + logger.info("Binary response"); + responseObject.setAttribute("activeclients", "0"); + responseObject.setXml("binary response"); + responseObject.setBinary(commandResponse.getBytes()); + + } else { + logger.error("Response was not found to be XML or binary. The response was not handled."); + } + Pz2Bean.get().getPzresp().put(getCommandName(), responseObject); } else { - logger.error("Response was not found to be XML or binary. The response was not handled."); + logger.debug("No record id parameter on this command. Ignoring request but clearing any previous record result."); + Pz2Bean.get().getPzresp().put(getCommandName(), new RecordResponse()); } - Pz2Bean.get().getPzresp().put(getCommandName(), responseObject); return responseObject; }