X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FRecordCommand.java;h=c9df6105eaa695ee6b8dc34c142f2cce493a645f;hb=8f451e761c251dcb4b01a2a11ee759e2ec3c1105;hp=c163abad7b4253a7bb5940a9be62a73064524cea;hpb=45780ca51a3f1a967acda7c4d7d71aebe7081a67;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 c163aba..c9df610 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java @@ -15,6 +15,7 @@ public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand private static final long serialVersionUID = 2817539422114569506L; private static Logger logger = Logger.getLogger(RecordCommand.class); + private RecordCommandSp spCommand = null; public RecordCommand() { super("record"); @@ -30,21 +31,21 @@ public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)commandResponse); if (ResponseParser.docTypes.contains(responseObject.getType())) { logger.debug("Storing " + responseObject.getType() + " in pzresp. "); - } else { + } else { logger.debug("Command was 'record' but response not '' - assuming raw record response."); - ResponseDataObject recordResponse = new RecordResponse(); + ResponseDataObject recordResponse = new RecordResponse(); recordResponse.setType("record"); - recordResponse.setXml(responseObject.getXml()); - recordResponse.setAttribute("activeclients", "0"); + recordResponse.setXml(responseObject.getXml()); + recordResponse.setAttribute("activeclients", "0"); + responseObject = recordResponse; } } else if (commandResponse.isBinary()) { - responseObject = new RecordResponse(); + 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."); } @@ -118,6 +119,7 @@ public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand for (String parameterName : parameters.keySet()) { newCommand.setParameterInState(parameters.get(parameterName).copy()); } + newCommand.spCommand = this.spCommand; return newCommand; } @@ -127,7 +129,10 @@ public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand * */ public RecordCommandSp getSp () { - return new RecordCommandSp(this); + if (spCommand==null) { + spCommand = new RecordCommandSp(this); + } + return spCommand; } @Override