Project

General

Profile

notify_about_errors_1.txt

Sergey Ivanovskiy, 02/05/2016 05:35 AM

Download (3.57 KB)

 
1
=== modified file 'src/com/goldencode/p2j/main/WebHandler.java'
2
--- src/com/goldencode/p2j/main/WebHandler.java	2016-01-28 12:40:59 +0000
3
+++ src/com/goldencode/p2j/main/WebHandler.java	2016-02-05 10:27:09 +0000
4
@@ -240,7 +240,7 @@
5
          errorMessage = htmlErrorMessage(webSpawner.getExitCode(), userName);
6
          
7
          // return a page having containing error message
8
-         doGet(target, base, request, response);
9
+         sendError(errorMessage, base, request, response);
10
          
11
          // reset error message
12
          errorMessage = "";
13
@@ -293,6 +293,51 @@
14
    }
15
    
16
    /**
17
+    * Sends the error message to the client.
18
+    * 
19
+    * @param    error
20
+    *           The error message to the client.
21
+    * @param    base
22
+    *           The base request.
23
+    * @param    request
24
+    *           The http request.
25
+    * @param    response
26
+    *           The http response.
27
+    */
28
+   private void sendError(
29
+                      String              error,
30
+                      Request             base, 
31
+                      HttpServletRequest  request,
32
+                      HttpServletResponse response)
33
+   {
34
+      response.setContentType(MimeTypes.Type.TEXT_HTML.asString());
35
+      response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
36
+      response.setHeader(HttpHeader.CACHE_CONTROL.asString(), 
37
+                         "no-cache, no-store, must-revalidate");
38
+      response.setDateHeader(HttpHeader.EXPIRES.asString(), 0);
39
+      
40
+      try
41
+      {
42
+         PrintWriter writer = response.getWriter();
43
+         writer.println(error);
44
+         writer.flush();
45
+      }
46
+      catch (IOException ioe)
47
+      {
48
+         LOG.logp(Level.SEVERE,
49
+                  "WebHandler.sendRedirectPath()",
50
+                  "",
51
+                  LogHelper.generate("IOException!"),
52
+                  ioe);
53
+      }
54
+      finally
55
+      {
56
+         // mark the request as handled
57
+         base.setHandled(true);
58
+      }
59
+   }
60
+   
61
+   /**
62
     * Process the given string and make any replacements of parameter
63
     * values as needed. The replacement placeholder follow the JEE 
64
     * expression language (EL) format for immediate evaluation. 
65
@@ -332,7 +377,7 @@
66
     */
67
    private String htmlErrorMessage(int exitCode, String userName)
68
    {
69
-      StringBuilder sb = new StringBuilder("<h1 style=\"color:red\">");
70
+      StringBuilder sb = new StringBuilder();
71
 
72
       if (PlatformHelper.isUnderWindowsFamily())
73
       {
74
@@ -386,7 +431,6 @@
75
          }
76
       }
77
       
78
-      sb.append("</h1>");
79
       return sb.toString();
80
    }
81
 }
82

    
83
=== modified file 'src/com/goldencode/p2j/main/web_client.html'
84
--- src/com/goldencode/p2j/main/web_client.html	2016-01-28 14:56:08 +0000
85
+++ src/com/goldencode/p2j/main/web_client.html	2016-02-05 10:25:53 +0000
86
@@ -42,6 +42,12 @@
87
                            window.location.assign(httpRequest.responseText);
88
                         }
89
                      }
90
+                     else if (httpRequest.status === 401)
91
+                     {
92
+                        var msg = httpRequest.responseText;
93
+                        var errorNotifier = document.getElementById("error");
94
+                        errorNotifier.textContent = msg;
95
+                     }
96
                   }
97
                 }
98
                 catch(ex)
99
@@ -104,7 +110,9 @@
100
                </table>
101
             </form>
102
          </div>
103
-         <div align="center" style="margin-top:100px">${error}</div> 
104
+         <div align="center" style="margin-top:100px">
105
+            <h1 id="error" style="color:red">${error}</h1>
106
+         </div> 
107
       </div>  
108
    </body>
109
 </html>
110