1 | |
package org.apache.turbine.modules.screens; |
2 | |
|
3 | |
|
4 | |
|
5 | |
|
6 | |
|
7 | |
|
8 | |
|
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | |
|
15 | |
|
16 | |
|
17 | |
|
18 | |
|
19 | |
|
20 | |
|
21 | |
|
22 | |
import java.util.Iterator; |
23 | |
import java.util.Map; |
24 | |
|
25 | |
import org.apache.ecs.ConcreteElement; |
26 | |
import org.apache.ecs.html.B; |
27 | |
import org.apache.ecs.html.H3; |
28 | |
import org.apache.ecs.html.H4; |
29 | |
import org.apache.ecs.html.PRE; |
30 | |
import org.apache.ecs.html.TD; |
31 | |
import org.apache.ecs.html.TR; |
32 | |
import org.apache.ecs.html.Table; |
33 | |
import org.apache.turbine.modules.Screen; |
34 | |
import org.apache.turbine.pipeline.PipelineData; |
35 | |
import org.apache.turbine.util.RunData; |
36 | |
|
37 | |
|
38 | |
|
39 | |
|
40 | |
|
41 | |
|
42 | |
|
43 | |
|
44 | 0 | public class Error extends Screen |
45 | |
{ |
46 | |
|
47 | |
|
48 | |
|
49 | |
|
50 | |
|
51 | |
|
52 | |
|
53 | |
|
54 | |
public ConcreteElement doBuild(RunData data) throws Exception |
55 | |
{ |
56 | 0 | data.setTitle("There has been an error!"); |
57 | |
|
58 | 0 | Table table = new Table().setBorder(0); |
59 | 0 | boolean hasValues = false; |
60 | 0 | for (Iterator it = data.getParameters().keySet().iterator(); |
61 | 0 | it.hasNext();) |
62 | |
{ |
63 | 0 | String key = (String) it.next(); |
64 | 0 | String value = data.getParameters().getString(key); |
65 | 0 | TR tr = |
66 | |
new TR().addElement( |
67 | |
new TD().addElement(new B(key))).addElement( |
68 | |
new TD().addElement(" = " + value)); |
69 | 0 | table.addElement(tr); |
70 | 0 | hasValues = true; |
71 | 0 | } |
72 | |
|
73 | 0 | Table table2 = new Table().setBorder(0); |
74 | 0 | Map varDebug = data.getDebugVariables(); |
75 | |
|
76 | 0 | boolean hasValues2 = false; |
77 | 0 | for (Iterator i = varDebug.keySet().iterator(); i.hasNext();) |
78 | |
{ |
79 | 0 | String key = (String) i.next(); |
80 | 0 | String value = varDebug.get(key).toString(); |
81 | 0 | TR tr = |
82 | |
new TR().addElement( |
83 | |
new TD().addElement(new B(key))).addElement( |
84 | |
new TD().addElement(" = " + value)); |
85 | 0 | table2.addElement(tr); |
86 | 0 | hasValues2 = true; |
87 | 0 | } |
88 | |
|
89 | 0 | data.getPage().getBody().addElement( |
90 | |
new H3( |
91 | |
data.getTitle() |
92 | |
+ " Please review the exception below " |
93 | |
+ "for more information.")); |
94 | |
|
95 | 0 | if (hasValues) |
96 | |
{ |
97 | 0 | data.getPage().getBody().addElement( |
98 | |
new H4().addElement("Get/Post Data:")); |
99 | 0 | data.getPage().getBody().addElement(table); |
100 | |
} |
101 | |
|
102 | 0 | if (hasValues2) |
103 | |
{ |
104 | 0 | data.getPage().getBody().addElement( |
105 | |
new H4().addElement("Debugging Data:")); |
106 | 0 | data.getPage().getBody().addElement(table2); |
107 | |
} |
108 | |
|
109 | 0 | String trace = data.getStackTrace(); |
110 | 0 | if (trace != null) |
111 | |
{ |
112 | 0 | data |
113 | |
.getPage() |
114 | |
.getBody() |
115 | |
.addElement(new H4().addElement("The exception is:")) |
116 | |
.addElement(new PRE(trace)) |
117 | |
.addElement(new PRE(data.getStackTraceException().toString())); |
118 | |
} |
119 | 0 | return null; |
120 | |
} |
121 | |
|
122 | |
|
123 | |
|
124 | |
|
125 | |
|
126 | |
|
127 | |
|
128 | |
|
129 | |
|
130 | |
public ConcreteElement doBuild(PipelineData pipelineData) throws Exception |
131 | |
{ |
132 | 0 | RunData data = getRunData(pipelineData); |
133 | 0 | return doBuild(data); |
134 | |
} |
135 | |
} |