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;
}