Work on error reporting. Adds troubleshooter.
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / CommandThread.java
index 902ccb4..50ec2b6 100644 (file)
@@ -5,11 +5,10 @@ import java.io.IOException;
 \r
 import org.apache.log4j.Logger;\r
 \r
-import com.indexdata.pz2utils4jsf.pazpar2.CommandThread;\r
-import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;\r
 import com.indexdata.masterkey.pazpar2.client.ClientCommand;\r
 import com.indexdata.masterkey.pazpar2.client.Pazpar2Client;\r
 import com.indexdata.masterkey.pazpar2.client.exceptions.Pazpar2ErrorException;\r
+import com.indexdata.pz2utils4jsf.pazpar2.data.ApplicationError;\r
 \r
 public class CommandThread extends Thread {\r
 \r
@@ -24,6 +23,16 @@ public class CommandThread extends Thread {
     this.client = client;\r
   }\r
   \r
+  /**\r
+   * Runs the specified command using the specified Pazpar2 client\r
+   * Sets the Pazpar2 response as an XML response string to be retrieved by\r
+   * getResponse().\r
+   * \r
+   * In case of an exception, an error response is generated, the document\r
+   * element being the same as it would have been if successful (named after\r
+   * the command, that is).  \r
+   *  \r
+   */\r
   public void run() {\r
     ClientCommand clientCommand = new ClientCommand(command.getName(), command.getEncodedQueryString());\r
     if (command.getName().equals("search")) {\r
@@ -36,18 +45,22 @@ public class CommandThread extends Thread {
       long end = System.currentTimeMillis();      \r
       logger.debug("Executed " + command.getName() + " in " + (end-start) + " ms." );\r
     } catch (IOException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
+      response.append(ApplicationError.createErrorXml(command.getName(), "io", e.getMessage())); \r
+      logger.error(response.toString());\r
     } catch (Pazpar2ErrorException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();\r
+      response.append(ApplicationError.createErrorXml(command.getName(), "pazpar2error", e.getMessage())); \r
+      logger.error(response.toString());\r
     }\r
   }\r
   \r
+  /**\r
+   * \r
+   * @return Pazpar2 response as an XML string, possibly a generated error XML\r
+   */\r
   public String getResponse () {\r
     return response.toString();\r
   }\r
-  \r
+    \r
   public Pazpar2Command getCommand() {\r
     return command;\r
   }\r