W3C home > Mailing lists > Public > www-validator-cvs@w3.org > September 2009

2006/unicorn/src/org/w3c/unicorn/input URIInputParameter.java,1.5,1.6 DirectInputParameter.java,1.1,1.2 UploadInputParameter.java,1.1,1.2

From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
Date: Fri, 18 Sep 2009 14:56:08 +0000
To: www-validator-cvs@w3.org
Message-Id: <E1Moesa-0000Tl-CD@lionel-hutz.w3.org>
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/input
In directory hutz:/tmp/cvs-serv1827/src/org/w3c/unicorn/input

Modified Files:
	URIInputParameter.java DirectInputParameter.java 
	UploadInputParameter.java 
Log Message:
implemented input verification messages. Made use of the new UnicornException constructor.

Index: UploadInputParameter.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/input/UploadInputParameter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- UploadInputParameter.java	17 Sep 2009 15:39:10 -0000	1.1
+++ UploadInputParameter.java	18 Sep 2009 14:56:06 -0000	1.2
@@ -2,11 +2,10 @@
 
 import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
-
 import org.apache.commons.fileupload.FileItem;
 import org.w3c.unicorn.contract.EnumInputMethod;
-
 import org.w3c.unicorn.exceptions.UnicornException;
+import org.w3c.unicorn.util.Message;
 
 public class UploadInputParameter extends InputParameter {
 	
@@ -19,23 +18,20 @@
 	@Override
 	public void check() throws UnicornException {
 		if (file.getName() == null || file.getName().equals("")) {
-			//throw new NoDocumentException("No document provided");
-			throw new UnicornException("");
+			throw new UnicornException(Message.Level.ERROR, "$message_no_uploaded_file", null);
 		}
 		if (file.getSize() == 0) {
-			//throw new EmptyDocumentException("Empty document provided");
-			throw new UnicornException("");
+			throw new UnicornException(Message.Level.ERROR, "$message_empty_uploaded_file", null);
 		}
 		String sMimeType = file.getContentType();
 		if (null == sMimeType || "".equals(sMimeType)) {
-			//throw new NoMimeTypeException("Mimetype not found");
-			throw new UnicornException("");
+			// TODO Is there another solution here to find the mime-type ?
+			throw new UnicornException(Message.Level.ERROR, "$message_not_found_mime_type", null);
 		}
 		try {
 			mimeType = new MimeType(sMimeType);
 		} catch (MimeTypeParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			throw new UnicornException(Message.Level.ERROR, "$message_invalid_mime_type", null);
 		}
 		inputModule = new FileItemInputModule(mimeType, file);
 	}

Index: DirectInputParameter.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/input/DirectInputParameter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- DirectInputParameter.java	17 Sep 2009 15:39:10 -0000	1.1
+++ DirectInputParameter.java	18 Sep 2009 14:56:06 -0000	1.2
@@ -3,10 +3,9 @@
 import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
 
-import org.w3c.unicorn.UnicornCall;
 import org.w3c.unicorn.contract.EnumInputMethod;
 import org.w3c.unicorn.exceptions.UnicornException;
-import org.w3c.unicorn.util.Property;
+import org.w3c.unicorn.util.Message;
 
 public class DirectInputParameter extends InputParameter {
 	
@@ -21,15 +20,14 @@
 
 	@Override
 	public void check() throws UnicornException {
-		if (null == sMimeType || "".equals(sMimeType)) {
-			//throw new NoMimeTypeException("Mimetype not found.");
-			throw new UnicornException("");
-		}
+		if (document == null || document.equals(""))
+			throw new UnicornException(Message.Level.ERROR, "$message_empty_direct_input", null);
+		if (sMimeType == null || sMimeType.equals(""))
+			throw new UnicornException(Message.Level.ERROR, "$message_missing_mime_type", null);
 		try {
 			mimeType = new MimeType(sMimeType);
 		} catch (MimeTypeParseException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+			throw new UnicornException(Message.Level.ERROR, "$message_invalid_mime_type", null);
 		}
 		inputModule = new DirectInputModule(mimeType, document);
 	}

Index: URIInputParameter.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/input/URIInputParameter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- URIInputParameter.java	17 Sep 2009 17:06:48 -0000	1.5
+++ URIInputParameter.java	18 Sep 2009 14:56:06 -0000	1.6
@@ -7,6 +7,7 @@
 import java.net.SocketTimeoutException;
 import java.net.URL;
 import java.net.UnknownHostException;
+import java.util.regex.Pattern;
 
 import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
@@ -21,60 +22,65 @@
 	
 	private String uri;
 	
-	private int connectTimeOut = Integer.parseInt(Property.get("DOCUMENT_CONNECT_TIMEOUT"));
+	private int connectTimeOut;
 	
 	public URIInputParameter(String uri) {
 		this.uri = uri;
+		if (Property.get("DOCUMENT_CONNECT_TIMEOUT") != null)
+			connectTimeOut = Integer.parseInt(Property.get("DOCUMENT_CONNECT_TIMEOUT"));
+		else 
+			connectTimeOut = 0;
 	}
 	
 	@Override
 	public void check() throws UnicornException {
 		URL docUrl = null;
 		try {
+			if (uri.equals(""))
+				throw new UnicornException(Message.Level.ERROR, "$message_empty_uri", null);
+			
+			Pattern urlPattern = Pattern.compile("^(https?)://([A-Z0-9][A-Z0-9_-]*)(\\.[A-Z0-9][A-Z0-9_-]*)*(:(\\d+))?([/#]\\p{ASCII}*)?", Pattern.CASE_INSENSITIVE);
+			if (!urlPattern.matcher(uri).matches()) {
+				if (!uri.contains("://")) 
+					uri = "http://" + uri;
+				if (!urlPattern.matcher(uri).matches())
+					throw new UnicornException(Message.Level.ERROR, "$message_invalid_url_syntax " + uri, null);
+			}
 			docUrl = new URL(uri);
+			if (!docUrl.getProtocol().equals("http") && !docUrl.getProtocol().equals("https"))
+				throw new UnicornException(Message.Level.ERROR, "$message_unsupported_protocol " + docUrl.getProtocol(), null);
 			HttpURLConnection con = (HttpURLConnection) docUrl.openConnection();
 			con.setConnectTimeout(connectTimeOut);
 			con.connect();
-			Message message;
 			int responseCode = con.getResponseCode();
 			switch (responseCode) {
 			case HttpURLConnection.HTTP_UNAUTHORIZED:
-				message = new Message(Message.Level.ERROR, "$message_unauthorized_access", null);
-				throw new UnicornException(message);
+				throw new UnicornException(Message.Level.ERROR, "$message_unauthorized_access", null);
 			case HttpURLConnection.HTTP_NOT_FOUND:
-				message = new Message(Message.Level.ERROR, "$message_document_not_found", null);
-				throw new UnicornException(message);
+				throw new UnicornException(Message.Level.ERROR, "$message_document_not_found", null);
 			}
 			String sMimeType = con.getContentType();
 			sMimeType = sMimeType.split(";")[0];
 			mimeType = new MimeType(sMimeType);
 			inputModule = new URIInputModule(mimeType, uri);
 		} catch (MalformedURLException e) {
-			Message message = new Message(Message.Level.ERROR, "$message_invalid_url_syntax " + uri, null);
-			throw new UnicornException(message);
+			throw new UnicornException(Message.Level.ERROR, "$message_invalid_url_syntax " + uri, null);
 		} catch (MimeTypeParseException e) {
-			Message message = new Message(Message.Level.ERROR, "$message_invalid_mime_type", null);
-			throw new UnicornException(message);
+			throw new UnicornException(Message.Level.ERROR, "$message_invalid_mime_type", null);
 		} catch (UnknownHostException e) { 
-			Message message = new Message(Message.Level.ERROR, "$message_unknown_host", null);
-			throw new UnicornException(message);
+			throw new UnicornException(Message.Level.ERROR, "$message_unknown_host", null);
 		} catch (SSLException e) {
-			Message message = new Message(Message.Level.ERROR, "$message_ssl_exception", null);
-			throw new UnicornException(message);
+			throw new UnicornException(Message.Level.ERROR, "$message_ssl_exception", null);
 		} catch (ConnectException e) {
-			Message message = new Message(Message.Level.ERROR, "$message_connect_exception", null);
-			throw new UnicornException(message);
+			throw new UnicornException(Message.Level.ERROR, "$message_connect_exception", null);
 		} catch (SocketTimeoutException e) {
 			if (e.getMessage().contains("connect timed out")) {
-				Message message = new Message(Message.Level.ERROR, "$message_connect_exception", null);
-				throw new UnicornException(message);
+				throw new UnicornException(Message.Level.ERROR, "$message_connect_exception", null);
 			} else {
-				Message message = new Message(e);
-				throw new UnicornException(message);
+				throw new UnicornException(new Message(e));
 			}
 		} catch (IOException e) {
-			Message message = new Message(e);
-			throw new UnicornException(message);
+			throw new UnicornException(new Message(e));
 		}
 	}
 
Received on Friday, 18 September 2009 14:56:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:55:14 GMT