2002/css-validator/org/w3c/css/servlet CssValidator.java,1.38,1.39

Update of /sources/public/2002/css-validator/org/w3c/css/servlet
In directory hutz:/tmp/cvs-serv11022/org/w3c/css/servlet

Modified Files:
	CssValidator.java 
Log Message:
multi-byte handling, more comprehensive use of charsets, while trying to preserve BOM support

Index: CssValidator.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/servlet/CssValidator.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- CssValidator.java	6 Feb 2009 13:18:50 -0000	1.38
+++ CssValidator.java	13 Feb 2009 21:50:16 -0000	1.39
@@ -137,9 +137,9 @@
 	// If so, the files will be regenerated
 	// This is done in a Thread so that the validation can carry on.
 	new Thread () {
-		public void run () {
-			IndexGenerator.generatesIndex(true);
-		}
+	    public void run () {
+		IndexGenerator.generatesIndex(true);
+	    }
 	}.start();
 
     }
@@ -237,7 +237,7 @@
 	} catch (Exception ex) {
 	    // pb in URI decoding (bad escaping, most probably)
 	    handleError(res, ac, output, "No file", new IOException(
-			"Invalid escape sequence in URI"), false);
+								    "Invalid escape sequence in URI"), false);
 	}
 	String text = null;
 	try {
@@ -247,7 +247,7 @@
 	    // not sure it will work here, as it may be catched by the first
 	    // getParameter call
 	    handleError(res, ac, output, "Invalid text", new IOException(
-			"Invalid escape sequence in URI"), false);
+									 "Invalid escape sequence in URI"), false);
 	}
 
 	String warning = req.getParameter("warning");
@@ -256,7 +256,7 @@
 	String usermedium = req.getParameter("usermedium");
 	String type = req.getParameter("type");
 	if (type == null)
-		type = "none";
+	    type = "none";
 
 	String credential = req.getHeader("Authorization");
 	if ((credential != null) && (credential.length() > 1)) {
@@ -296,11 +296,11 @@
 		|| "svgbasic".equals(profile) || "svgtiny".equals(profile)) {
 	    	ac.setCssVersion(profile);
 	    } else {
-			ac.setProfile(profile);
-			ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
+		ac.setProfile(profile);
+		ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
 	    }
 	} else {
-		ac.setProfile("none");
+	    ac.setProfile("none");
 	    ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
 	}
 	if (Util.onDebug) {
@@ -313,8 +313,8 @@
 	    // res.sendError(res.SC_BAD_REQUEST,
 	    // "You have send an invalid request.");
 	    handleError(res, ac, output, "No file",
-		    new IOException(ac.getMsg().getServletString("invalid-request")),
-		    false);
+			new IOException(ac.getMsg().getServletString("invalid-request")),
+			false);
 	    return;
 	}
 
@@ -370,40 +370,40 @@
 		handleError(res, ac, output, uri, e, true);
 	    }
 	} else if (text != null) {
-		String fileName = "TextArea";
-		Util.verbose("- " + fileName + " Data -");
-		Util.verbose(text);
-		Util.verbose("- End of " + fileName + " Data");
-		InputStream is = new ByteArrayInputStream(text.getBytes());
-		fileName = "file://localhost/" + fileName;
+	    String fileName = "TextArea";
+	    Util.verbose("- " + fileName + " Data -");
+	    Util.verbose(text);
+	    Util.verbose("- End of " + fileName + " Data");
+	    InputStream is = new ByteArrayInputStream(text.getBytes());
+	    fileName = "file://localhost/" + fileName;
 		
-		try {
+	    try {
 		
-			if ("css".equals(type) || ( "none".equals(type) && isCSS(text))) {
-				// if CSS:
-				parser = new StyleSheetParser();
-		  	    parser.parseStyleElement(ac, is, null, usermedium,
-		  			new URL(fileName), 0);
+		if ("css".equals(type) || ( "none".equals(type) && isCSS(text))) {
+		    // if CSS:
+		    parser = new StyleSheetParser();
+		    parser.parseStyleElement(ac, is, null, usermedium,
+					     new URL(fileName), 0);
 		  	  
-		  	    handleRequest(ac, res, fileName, parser
-		  			  .getStyleSheet(), output, warningLevel, errorReport);
-			} else {
-				// else, trying HTML
-				TagSoupStyleSheetHandler handler = new TagSoupStyleSheetHandler(null, ac);
-				handler.parse(is, fileName);
+		    handleRequest(ac, res, fileName, parser
+				  .getStyleSheet(), output, warningLevel, errorReport);
+		} else {
+		    // else, trying HTML
+		    TagSoupStyleSheetHandler handler = new TagSoupStyleSheetHandler(null, ac);
+		    handler.parse(is, fileName);
 	
-				handleRequest(ac, res, fileName, handler.getStyleSheet(), output,
-					      warningLevel, errorReport);
-			}
-		} catch (ProtocolException pex) {
-			if (Util.onDebug) {
-			    pex.printStackTrace();
-			}
-			res.setHeader("WWW-Authenticate", pex.getMessage());
-			res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
-	  	} catch (Exception e) {
-	  	    handleError(res, ac, output, fileName, e, false);
-	  	}
+		    handleRequest(ac, res, fileName, handler.getStyleSheet(), output,
+				  warningLevel, errorReport);
+		}
+	    } catch (ProtocolException pex) {
+		if (Util.onDebug) {
+		    pex.printStackTrace();
+		}
+		res.setHeader("WWW-Authenticate", pex.getMessage());
+		res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+	    } catch (Exception e) {
+		handleError(res, ac, output, fileName, e, false);
+	    }
 	}
 	Util.verbose("CssValidator: Request terminated.\n");
     }
@@ -418,18 +418,18 @@
      * @return <tt>false</tt> if it contains the style tag well formed 
      */
     private boolean isCSS(String text) {
-		try {
-			text = text.toLowerCase();
-			int p = text.indexOf("<style");
-			return p == -1 || p > text.indexOf("</style>");
-		} catch (Exception e) {
-			System.err.println("error: " + e.getMessage());
-			return true;
-		}
-		
+	try {
+	    text = text.toLowerCase();
+	    int p = text.indexOf("<style");
+	    return p == -1 || p > text.indexOf("</style>");
+	} catch (Exception e) {
+	    System.err.println("error: " + e.getMessage());
+	    return true;
 	}
+		
+    }
 
-	/**
+    /**
      * Performs the HTTP POST operation. An HTTP BAD_REQUEST error is reported
      * if an error occurs. The headers that are set should include content type,
      * length, and encoding. Setting content length allows the servlet to take
@@ -555,8 +555,8 @@
 		    warning = (String) tmp[i].getValue();
 		} else if (tmp[i].getName().equals("error")) {
 		    warning = (String) tmp[i].getValue();
-		//} else if (tmp[i].getName().equals("input")) {
-		//    XMLinput = ((String) tmp[i].getValue()).equals("XML");
+		    //} else if (tmp[i].getName().equals("input")) {
+		    //    XMLinput = ((String) tmp[i].getValue()).equals("XML");
 		} else if (tmp[i].getName().equals("profile")) {
 		    profile = (String) tmp[i].getValue();
 		} else if (tmp[i].getName().equals("usermedium")) {
@@ -622,11 +622,11 @@
 		|| "svgbasic".equals(profile) || "svgtiny".equals(profile)) {
 	    	ac.setCssVersion(profile);
 	    } else {
-			ac.setProfile(profile);
-			ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
+		ac.setProfile(profile);
+		ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
 	    }
 	} else {
-		ac.setProfile("none");
+	    ac.setProfile("none");
 	    ac.setCssVersion(PropertiesLoader.config.getProperty("defaultProfile"));
 	}
 	String fileName = "";
@@ -634,45 +634,45 @@
 	boolean isCSS = false;
 	
 	if (file != null && file.getSize() != 0) {
-		fileName = file.getName();
-		Util.verbose("File : " + fileName);
-		is = file.getInputStream();
-		// another way to get file type...
-		isCSS = file.getContentType().equals(textcss);
+	    fileName = file.getName();
+	    Util.verbose("File : " + fileName);
+	    is = file.getInputStream();
+	    // another way to get file type...
+	    isCSS = file.getContentType().equals(textcss);
 	} else if (text != null ) {
-		fileName = "TextArea";
-		Util.verbose("- " + fileName + " Data -");
-		Util.verbose(text);
-		Util.verbose("- End of " + fileName + " Data");
-		is = new ByteArrayInputStream(text.getBytes());
-		//quick test that works in most cases to determine wether it's HTML or CSS
-		isCSS = isCSS(text);
+	    fileName = "TextArea";
+	    Util.verbose("- " + fileName + " Data -");
+	    Util.verbose(text);
+	    Util.verbose("- End of " + fileName + " Data");
+	    is = new ByteArrayInputStream(text.getBytes());
+	    //quick test that works in most cases to determine wether it's HTML or CSS
+	    isCSS = isCSS(text);
 	}
 	fileName = "file://localhost/" + fileName;
   	try {
 		
-		if (isCSS) {
-			//if CSS:
-			parser = new StyleSheetParser();
-	  	    parser.parseStyleElement(ac, is, null, usermedium,
-	  			new URL(fileName), 0);
+	    if (isCSS) {
+		//if CSS:
+		parser = new StyleSheetParser();
+		parser.parseStyleElement(ac, is, null, usermedium,
+					 new URL(fileName), 0);
 	  	  
-	  	    handleRequest(ac, res, fileName, parser
-	  			  .getStyleSheet(), output, warningLevel, errorReport);
-		} else {
-			// else, trying HTML
-			TagSoupStyleSheetHandler handler = new TagSoupStyleSheetHandler(null, ac);
-			handler.parse(is, fileName);
+		handleRequest(ac, res, fileName, parser
+			      .getStyleSheet(), output, warningLevel, errorReport);
+	    } else {
+		// else, trying HTML
+		TagSoupStyleSheetHandler handler = new TagSoupStyleSheetHandler(null, ac);
+		handler.parse(is, fileName);
 
-			handleRequest(ac, res, fileName, handler.getStyleSheet(), output,
-				      warningLevel, errorReport);
-		}
+		handleRequest(ac, res, fileName, handler.getStyleSheet(), output,
+			      warningLevel, errorReport);
+	    }
 	} catch (ProtocolException pex) {
-		if (Util.onDebug) {
-		    //pex.printStackTrace();
-		}
-		res.setHeader("WWW-Authenticate", pex.getMessage());
-		res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+	    if (Util.onDebug) {
+		//pex.printStackTrace();
+	    }
+	    res.setHeader("WWW-Authenticate", pex.getMessage());
+	    res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
   	} catch (Exception e) {
   	    handleError(res, ac, output, fileName, e, false);
   	}
@@ -716,8 +716,8 @@
 	PrintWriter out = getLocalPrintWriter(res.getOutputStream(), ac
 					      .getContentEncoding());
 	int nb_errors = styleSheet.getErrors().getErrorCount();
-    res.setHeader(headers_name + "Errors", String.valueOf(nb_errors));
-    res.setHeader(headers_name + "Status", nb_errors == 0 ? "Valid" : "Invalid");
+	res.setHeader(headers_name + "Errors", String.valueOf(nb_errors));
+	res.setHeader(headers_name + "Status", nb_errors == 0 ? "Valid" : "Invalid");
 
 	try {
 	    style.print(out);
@@ -763,7 +763,7 @@
 	    }
 	    //outputMt = MimeType.TEXT_PLAIN.getClone();
 	} else if(output.equals("ucn")) {
-		outputMt = MimeType.APPLICATION_XML.getClone();
+	    outputMt = MimeType.APPLICATION_XML.getClone();
         } else if(output.equals("json")) {
             try {
                 outputMt = new MimeType(json);
@@ -801,7 +801,7 @@
     }
 
     private void handleError(HttpServletResponse res, ApplContext ac,
-	String output, String title, Exception e, boolean validURI)
+			     String output, String title, Exception e, boolean validURI)
     	throws IOException {
 
 	System.err.println("[ERROR VALIDATOR] " + title);
@@ -822,11 +822,11 @@
 	}
 
 	PrintWriter out = getLocalPrintWriter(res.getOutputStream(), ac
-		      .getContentEncoding());
+					      .getContentEncoding());
 
 	ErrorReport error = ErrorReportFactory.getErrorReport(ac, title, output,
 							      e, validURI);
-    res.setHeader(headers_name + "Status", "Abort");
+	res.setHeader(headers_name + "Status", "Abort");
 
 	try {
 	    error.print(out);

Received on Friday, 13 February 2009 21:50:40 UTC