Author: [log in to unmask]
Date: Fri May 15 19:31:02 2015
New Revision: 2982
Log:
Make sure request XML gets read correctly.
Modified:
java/trunk/record-util/src/main/java/org/hps/record/evio/crawler/JCacheManager.java
Modified: java/trunk/record-util/src/main/java/org/hps/record/evio/crawler/JCacheManager.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/evio/crawler/JCacheManager.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/evio/crawler/JCacheManager.java Fri May 15 19:31:02 2015
@@ -71,8 +71,7 @@
process = new ProcessBuilder("jcache", "request", requestId.toString()).start();
} catch (final IOException e) {
throw new RuntimeException(e);
- }
-
+ }
int status = 0;
try {
status = process.waitFor();
@@ -82,26 +81,31 @@
if (status != 0) {
throw new RuntimeException("The jcache request process returned a non-zero exit status: " + status);
}
+ return getRequestXml(process.getInputStream()).getChild("request").getChildText("status");
+ }
+
+ private Element getRequestXml(InputStream is) {
String xmlString = null;
try {
- xmlString = readFully(process.getInputStream(), "US-ASCII");
+ xmlString = readFully(is, "US-ASCII");
} catch (IOException e) {
throw new RuntimeException(e);
- }
- xmlString = xmlString.trim();
+ }
+ xmlString = xmlString.substring(xmlString.trim().indexOf("<?xml"));
LOGGER.info(xmlString);
- Document xml = buildDocument(xmlString);
- Element root = xml.getRootElement();
- String requestStatus = root.getChild("request").getChildText("status");
- return requestStatus;
- }
-
+ return buildDocument(xmlString).getRootElement();
+ }
+
boolean isPending() {
return !"pending".equals(getStatus());
}
boolean isDone() {
return "done".equals(getStatus());
+ }
+
+ boolean isHit() {
+ return "hit".equals(getStatus());
}
}
@@ -169,9 +173,9 @@
boolean check = true;
INFO_LOOP: for (Entry<File, FileInfo> entry : fileInfos.entrySet()) {
FileInfo info = entry.getValue();
- info.update();
+ info.update();
if (!info.isCached()) {
- LOGGER.info(entry.getKey() + " is not cached yet");
+ LOGGER.info(entry.getKey() + " is not cached with status " + info.getStatus());
check = false;
break INFO_LOOP;
}
|