X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FPz2Bean.java;h=30ac45531d570c20f0f99b247ea5be50c22c5c79;hb=5b978e6919af8e8548337cd1ab1ce1df625f74f1;hp=4c31b96f9c3b370aefaea880d8e2f9ea7cca11be;hpb=b9c65ec6cefe23341e4ae9ea4e6c6f9d9d7ed495;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Bean.java b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Bean.java index 4c31b96..30ac455 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Bean.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Bean.java @@ -140,9 +140,12 @@ public class Pz2Bean implements Pz2Interface, StateListener, Configurable, Seria logger.debug("Ignoring record request due search error."); return ""; } else { + logger.debug("Executing record command"); ResponseDataObject responseObject = doCommand("record"); - if (pzreq.getRecord().hasParameterValue("offset") || - pzreq.getRecord().hasParameterValue("checksum")) { + if ((pzreq.getRecord().hasParameterValue("offset") || + pzreq.getRecord().hasParameterValue("checksum")) && + !responseObject.getType().equals("record")) { + logger.debug("Storing record offset response as 'record'"); RecordResponse recordResponse = new RecordResponse(); recordResponse.setType("record"); recordResponse.setXml(responseObject.getXml()); @@ -288,7 +291,19 @@ public class Pz2Bean implements Pz2Interface, StateListener, Configurable, Seria pager = new ResultsPager(pzresp,pageRange,pzreq); return pager; } - + + /** + * This methods main purpose is to support browser history. + * + * When the browsers back or forward buttons are pressed, a + * re-search /might/ be required - namely if the query changes. + * So, as the UI requests updates of the page (show,facets, + * etc) this method checks if a search must be executed + * before those updates are performed. + * + * @see {@link com.indexdata.mkjsf.pazpar2.state.StateManager#setCurrentStateKey} + * @param commands + */ protected void handleQueryStateChanges (String commands) { if (stateMgr.hasPendingStateChange("search") && hasQuery()) { logger.info("Triggered search: Found pending search change [" + pzreq.getCommand("search").toString() + "], doing search before updating " + commands); @@ -323,8 +338,11 @@ public class Pz2Bean implements Pz2Interface, StateListener, Configurable, Seria responseLogger.debug("Response was: " + commandResponse.getResponseString()); responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)commandResponse); if (ResponseParser.docTypes.contains(responseObject.getType())) { + logger.debug("Storing " + responseObject.getType() + " in pzresp. "); pzresp.put(commandName, responseObject); - } + } else { + logger.info("Unrecognized response object type not cached in pzresp: " + responseObject.getType()); + } return responseObject; }