2006/unicorn/src/org/w3c/unicorn/action IndexAction.java,1.4,1.5 ObserveAction.java,1.3,1.4

Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action
In directory hutz:/tmp/cvs-serv26505/src/org/w3c/unicorn/action

Modified Files:
	IndexAction.java ObserveAction.java 
Log Message:
unicorn now displays error messages on the index page instead of a dedicated page

Index: IndexAction.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/IndexAction.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- IndexAction.java	31 Aug 2009 11:59:09 -0000	1.4
+++ IndexAction.java	31 Aug 2009 15:00:15 -0000	1.5
@@ -9,6 +9,7 @@
 import org.apache.velocity.VelocityContext;
 import org.w3c.unicorn.Framework;
 import org.w3c.unicorn.language.Language;
+import org.w3c.unicorn.util.Message;
 import org.w3c.unicorn.util.Property;
 import org.w3c.unicorn.util.Templates;
 
@@ -46,6 +47,10 @@
 		
 		velocityContext.put("current_task", Framework.mapOfTask.get(taskParameter));
 		
+		if (req.getAttribute("unicorn_message") != null)
+			//System.out.println("TOM: " + ((Message) req.getAttribute("unicorn_message")).getMessage());
+			velocityContext.put("message", req.getAttribute("unicorn_message"));
+		
 		if (req.getHeader("X-Requested-With") != null && req.getHeader("X-Requested-With").equals("XMLHttpRequest")) {
 			//for JavaScript testing purposes
 			/*long s = System.currentTimeMillis();

Index: ObserveAction.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/ObserveAction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ObserveAction.java	31 Aug 2009 11:59:09 -0000	1.3
+++ ObserveAction.java	31 Aug 2009 15:00:15 -0000	1.4
@@ -36,6 +36,7 @@
 import org.w3c.unicorn.output.OutputFactory;
 import org.w3c.unicorn.output.OutputFormater;
 import org.w3c.unicorn.output.OutputModule;
+import org.w3c.unicorn.util.Message;
 import org.w3c.unicorn.util.Property;
 
 /**
@@ -97,7 +98,7 @@
 		
 		logger.debug("Lang Parameter: " + langParameter);
 		
-		//velocityContext = new VelocityContext(Language.getContext(langParameter));
+		
 		
 		// Variables related to the output
 		final Map<String, String[]> mapOfSpecificParameter = new Hashtable<String, String[]>();
@@ -124,15 +125,19 @@
 
 			this.addParameter(sParamName, tStringParamValue, aUnicornCall,
 					mapOfSpecificParameter, mapOfOutputParameter);
-		} // For
+		}
+		
+		if (aUnicornCall.getTask() == null)
+			aUnicornCall.setTask(Framework.mapOfTask.getDefaultTaskId());
 
-		if (aUnicornCall.getTask() == null) {
+		/*if (aUnicornCall.getTask() == null) {
 			ObserveAction.logger.error("No task selected.");
 			this.createError(resp, new NoTaskException(),
 					mapOfSpecificParameter, mapOfOutputParameter);
 			return;
-		}
-
+		}*/
+		
+		
 		try {
 			aUnicornCall.doTask();
 
@@ -141,8 +146,22 @@
 		} catch (final Exception aException) {
 			ObserveAction.logger.error("Exception : " + aException.getMessage(),
 					aException);
-			this.createError(resp, aException,
-					mapOfSpecificParameter, mapOfOutputParameter);
+			
+			if (mapOfOutputParameter.get("format").equals("xhtml10")) {
+				String errorMessage = (String) Framework.getLanguageProperties().get(langParameter).get("stack_trace_text");
+				String errorContent = "";
+				errorContent += aException.getMessage() + "\n";
+				for (StackTraceElement stackTraceElement : aException.getStackTrace()) {
+					errorContent += stackTraceElement.toString() + "\n";
+				}
+				Message mess = new Message(Message.Level.ERROR, errorMessage, errorContent);
+				req.setAttribute("unicorn_message", mess);
+				(new IndexAction()).doGet(req, resp);
+				
+			} else {
+				this.createError(resp, aException, mapOfSpecificParameter, mapOfOutputParameter);
+			}
+			
 		}
 	}
 
@@ -234,8 +253,13 @@
 		} catch (final Exception aException) {
 			ObserveAction.logger.error("Exception : " + aException.getMessage(),
 					aException);
-			this.createError(resp, aException,
-					mapOfSpecificParameter, mapOfOutputParameter);
+			
+			if (mapOfOutputParameter.get("format").equals("xhtml10")) {
+				(new IndexAction()).doGet(req, resp);
+			} else {
+				this.createError(resp, aException, mapOfSpecificParameter, mapOfOutputParameter);
+			}
+			
 		} finally {
 			if ("true".equals(Property.get("DELETE_UPLOADED_FILES"))
 					&& aFileItemUploaded != null

Received on Monday, 31 August 2009 15:00:27 UTC