View Javadoc

1   /*
2    * $Id: QuerierError.java,v 1.1.1.1 2005/02/17 18:37:35 mch Exp $
3    *
4    * (C) Copyright Astrogrid...
5    */
6   
7   package org.astrogrid.dataservice.queriers.status;
8   
9   import java.io.PrintWriter;
10  import java.io.StringWriter;
11  import org.astrogrid.dataservice.queriers.QuerierPluginException;
12  import org.astrogrid.query.QueryException;
13  import org.astrogrid.query.QueryState;
14  
15  public class QuerierError extends QuerierStatus implements QuerierClosed
16  {
17     Throwable cause;
18     String errorMsg;
19     
20     public QuerierError(QuerierStatus previousStatus, String givenMessage, Throwable causeOfError) {
21        super(previousStatus, ERROR);
22        this.errorMsg = givenMessage;
23  
24        //unwrap wrapping exceptions
25        if ((causeOfError != null) && (causeOfError.getCause() != null) && (
26              (causeOfError instanceof QuerierPluginException) ||
27              (causeOfError instanceof QueryException)
28           ))
29           
30        {
31           addDetail(causeOfError.toString());
32           addDetail("Caused By: ");
33           causeOfError = causeOfError.getCause();
34        }
35  
36        this.cause = causeOfError;
37        StringWriter sw = new StringWriter();
38        cause.printStackTrace(new PrintWriter(sw));
39        addDetail(sw.toString());
40     }
41     
42     public QueryState getState() { return QueryState.ERROR; }
43  
44     public Throwable getCause() {
45        return cause;
46     }
47     
48     public String message() {
49        return errorMsg;
50     }
51  
52     public String toString() {
53        return super.toString()+": "+cause.getMessage()+" ("+errorMsg+")";
54     }
55  
56     /*** Returns true */
57     public boolean isFinished() { return true; }
58     
59  }
60  
61  /*
62  $Log: QuerierError.java,v $
63  Revision 1.1.1.1  2005/02/17 18:37:35  mch
64  Initial checkin
65  
66  Revision 1.1.1.1  2005/02/16 17:11:24  mch
67  Initial checkin
68  
69  Revision 1.2.30.1  2004/11/25 18:33:43  mch
70  more status (incl persisting) more tablewriting lots of fixes
71  
72  Revision 1.2  2004/10/01 18:04:59  mch
73  Some factoring out of status stuff, added monitor page
74  
75  Revision 1.1  2004/09/28 15:02:13  mch
76  Merged PAL and server packages
77  
78  Revision 1.6  2004/03/16 17:52:20  mch
79  Fix for nul cause of cause
80  
81  Revision 1.5  2004/03/15 19:16:12  mch
82  Lots of fixes to status updates
83  
84  Revision 1.4  2004/03/15 17:11:31  mch
85  Better information
86  
87  Revision 1.3  2004/03/14 19:12:33  mch
88  Added stack trace to error details
89  
90  Revision 1.2  2004/03/14 00:39:55  mch
91  Added error trapping to DataServer and setting Querier error status
92  
93  Revision 1.1  2004/03/12 04:45:26  mch
94  It05 MCH Refactor
95  
96   */