You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/05/04 20:52:22 UTC

svn commit: r653262 - /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java

Author: veithen
Date: Sun May  4 11:52:21 2008
New Revision: 653262

URL: http://svn.apache.org/viewvc?rev=653262&view=rev
Log:
Made ClasspathURLStreamHandler more robust (SYNAPSE-207).

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java?rev=653262&r1=653261&r2=653262&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/ClasspathURLStreamHandler.java Sun May  4 11:52:21 2008
@@ -19,12 +19,16 @@
 
 package org.apache.synapse.util;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLStreamHandler;
 
+import org.apache.commons.lang.StringUtils;
+
 public final class ClasspathURLStreamHandler extends URLStreamHandler {
 
     public URLConnection openConnection(URL url) {
@@ -39,14 +43,13 @@
 
         public void connect() {}
 
-        public InputStream getInputStream() {
-            String s = url.toExternalForm();
-            s = s.substring((url.getProtocol() + "://").length(), s.length());
-
-            InputStream is = ClasspathURLStreamHandler.class.getClassLoader().getResourceAsStream(s);
+        public InputStream getInputStream() throws IOException {
+            if (StringUtils.isNotEmpty(url.getHost())) {
+                throw new MalformedURLException("No host expected in classpath URLs");
+            }
+            InputStream is = ClasspathURLStreamHandler.class.getClassLoader().getResourceAsStream(url.getFile());
             if (is == null) {
-                String msg = "Unable to read the specified resource from the classpath:  " + s;
-                throw new RuntimeException(msg);
+                throw new IOException("Classpath resource not found: " + url);
             }
             return is;
         }