[richfaces-svn-commits] JBoss Rich Faces SVN: r5924 - in trunk/framework: api/src/main/java/org/ajax4jsf/resource and 11 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Feb 7 12:03:08 EST 2008


Author: nbelaevski
Date: 2008-02-07 12:03:07 -0500 (Thu, 07 Feb 2008)
New Revision: 5924

Added:
   trunk/framework/api/src/main/java/org/ajax4jsf/resource/util/
   trunk/framework/api/src/main/java/org/ajax4jsf/resource/util/URLToStreamHelper.java
Removed:
   trunk/framework/impl/src/main/java/org/ajax4jsf/resource/util/
Modified:
   trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
   trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java
   trunk/framework/api/src/main/java/org/richfaces/skin/SkinFactory.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/compiler/HtmlCompiler.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceService.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/resource/JarResource.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/resource/cached/CachedResourceBuilder.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/util/ServicesUtils.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/ConfigurableXMLFilter.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/tidy/TidyXMLFilter.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/CharInfo.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/OutputPropertiesFactory.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport12.java
   trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
Log:
http://jira.jboss.com/jira/browse/RF-1284

Modified: trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -13,6 +13,8 @@
 import javax.faces.context.FacesContext;
 import javax.faces.el.VariableResolver;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
+
 public abstract class AjaxContext {
 
 	/**
@@ -125,8 +127,8 @@
 					String factoryClassName = DEFAULT_CONTEXT_CLASS;
 					// Pluggable factories.
 					InputStream input = null; // loader.getResourceAsStream(SERVICE_RESOURCE);
-					input = contextClassLoader
-							.getResourceAsStream(SERVICE_RESOURCE);
+					input = URLToStreamHelper.urlToStreamSafe(contextClassLoader
+							.getResource(SERVICE_RESOURCE));
 					// have services file.
 					if (input != null) {
 						try {

Modified: trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/resource/InternetResourceBuilder.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -32,6 +32,7 @@
 import javax.faces.context.FacesContext;
 import javax.servlet.ServletException;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -139,7 +140,8 @@
 				String serviceClassName = "org.ajax4jsf.resource.ResourceBuilderImpl";
 				String resource = "META-INF/services/"
 						+ InternetResourceBuilder.class.getName();
-				InputStream in = loader.getResourceAsStream(resource);
+				InputStream in = URLToStreamHelper.urlToStreamSafe(
+						loader.getResource(resource));
 				if (null != in) {
 					BufferedReader reader = new BufferedReader(
 							new InputStreamReader(in));

Added: trunk/framework/api/src/main/java/org/ajax4jsf/resource/util/URLToStreamHelper.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/resource/util/URLToStreamHelper.java	                        (rev 0)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/resource/util/URLToStreamHelper.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -0,0 +1,82 @@
+/**
+ * License Agreement.
+ *
+ *  JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007  Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.ajax4jsf.resource.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Utility class to solve JAR locking issue using {@link URLConnection#setUseCaches(boolean)} method.
+ * Contains one utility method that gets {@link InputStream} from {@link URL} with caching disabled.
+ * 
+ * Created 07.02.2008
+ * @author Nick Belaevski
+ * @since 3.2
+ */
+
+public final class URLToStreamHelper {
+
+	private static final Log log = LogFactory.getLog(URLToStreamHelper.class);
+	
+	private URLToStreamHelper() {
+		super();
+	}
+	
+	/**
+	 * Returns {@link InputStream} corresponding to argument {@link URL} 
+	 * but with caching disabled
+	 * 
+	 * @param url {@link URL} of the resource
+	 * @return {@link InputStream} instance or <code>null</code>
+	 * @throws IOException
+	 */
+	public static final InputStream urlToStream(URL url) throws IOException {
+		if (url != null) {
+			URLConnection connection = url.openConnection();
+			try {
+				connection.setUseCaches(false);
+			} catch (IllegalArgumentException e) {
+				log.error(e.getLocalizedMessage(), e);
+			}
+
+			return connection.getInputStream();
+		} else {
+			return null;
+		}
+	}
+	
+	public static final InputStream urlToStreamSafe(URL url) {
+		try {
+			return urlToStream(url);
+		} catch (IOException e) {
+			// do nothing
+		}
+		
+		return null;
+	}
+
+}

Modified: trunk/framework/api/src/main/java/org/richfaces/skin/SkinFactory.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/skin/SkinFactory.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/api/src/main/java/org/richfaces/skin/SkinFactory.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -33,6 +33,7 @@
 import javax.faces.context.FacesContext;
 
 import org.ajax4jsf.Messages;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -74,7 +75,8 @@
 			if (instance == null) {
 				// Pluggable factories.
 				InputStream input = null; // loader.getResourceAsStream(SERVICE_RESOURCE);
-				input = loader.getResourceAsStream(SERVICE_RESOURCE);
+				input = URLToStreamHelper.urlToStreamSafe(
+						loader.getResource(SERVICE_RESOURCE));
 				// have services file.
 				if (input != null) {
 					try {

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/cache/CacheManager.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -11,6 +11,7 @@
 import java.util.Map;
 import java.util.Properties;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -109,7 +110,8 @@
         // try to find services in CLASSPATH
         try {
             ClassLoader cl = findClassLoader();
-            InputStream is = cl.getResourceAsStream("META-INF/services/" + factoryId);
+            InputStream is = URLToStreamHelper.urlToStreamSafe(
+            		cl.getResource("META-INF/services/" + factoryId));
             if (is != null) {
                 BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                 try {

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/compiler/HtmlCompiler.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/compiler/HtmlCompiler.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/compiler/HtmlCompiler.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -36,6 +36,7 @@
 
 import org.ajax4jsf.Messages;
 import org.ajax4jsf.renderkit.RendererBase;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.digester.Digester;
 import org.apache.commons.digester.Rule;
 import org.apache.commons.digester.RulesBase;
@@ -272,7 +273,7 @@
 	public static PreparedTemplate compileResource(String resource)  {
 		HtmlCompiler compiler = new HtmlCompiler();
 		ClassLoader loader = Thread.currentThread().getContextClassLoader();
-		InputStream input = loader.getResourceAsStream(resource);
+		InputStream input = URLToStreamHelper.urlToStreamSafe(loader.getResource(resource));
 		// Since parsing exceptions handled by compiler, we can not check parameter.
 		PreparedTemplate compile = compiler.compile(input, resource);
 		if(null != input){

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceService.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceService.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceService.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -47,10 +47,7 @@
 import org.ajax4jsf.cache.CacheLoader;
 import org.ajax4jsf.cache.CacheManager;
 import org.ajax4jsf.cache.ServletContextInitMap;
-import org.ajax4jsf.resource.InternetResource;
-import org.ajax4jsf.resource.InternetResourceBuilder;
-import org.ajax4jsf.resource.ResourceContext;
-import org.ajax4jsf.resource.ResourceNotFoundException;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.webapp.BaseFilter;
 import org.ajax4jsf.webapp.CacheContent;
 import org.ajax4jsf.webapp.WebXml;
@@ -265,7 +262,7 @@
 	 */
 	protected Properties getProperties(String name) {
 		Properties properties = new Properties();
-		InputStream props = BaseFilter.class.getResourceAsStream(name);
+		InputStream props = URLToStreamHelper.urlToStreamSafe(BaseFilter.class.getResource(name));
 		if (null != props) {
 			try {
 				properties.load(props);

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/JarResource.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/JarResource.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/JarResource.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -21,13 +21,9 @@
 
 package org.ajax4jsf.resource;
 
-import java.io.IOException;
 import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Date;
 
-import org.ajax4jsf.resource.ResourceContext;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 
 
 /**
@@ -61,7 +57,7 @@
 	 */
 	public InputStream getResourceAsStream(ResourceContext context) {
 		ClassLoader loader = Thread.currentThread().getContextClassLoader();
-		return loader.getResourceAsStream(path);
+		return URLToStreamHelper.urlToStreamSafe(loader.getResource(path));
 	}
 
 	public String getPath() {

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/cached/CachedResourceBuilder.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/cached/CachedResourceBuilder.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/cached/CachedResourceBuilder.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -32,6 +32,7 @@
 import org.ajax4jsf.resource.InternetResource;
 import org.ajax4jsf.resource.ResourceBuilderImpl;
 import org.ajax4jsf.resource.ResourceNotFoundException;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -174,8 +175,8 @@
          */
     protected Properties getProperties(String name) {
 	Properties properties = new Properties();
-	InputStream props = CachedResourceBuilder.class
-		.getResourceAsStream(name);
+	InputStream props = URLToStreamHelper.urlToStreamSafe(CachedResourceBuilder.class
+		.getResource(name));
 	if (null != props) {
 	    try {
 		properties.load(props);

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/util/ServicesUtils.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/util/ServicesUtils.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/util/ServicesUtils.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -30,6 +30,7 @@
 
 import javax.faces.FacesException;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -108,7 +109,7 @@
 		Class serviceClass;
 		try {
 			String resource = "META-INF/services/" + name;
-			InputStream in = loader.getResourceAsStream(resource);
+			InputStream in = URLToStreamHelper.urlToStreamSafe(loader.getResource(resource));
 			BufferedReader reader = new BufferedReader(
 					new InputStreamReader(in));
 			String serviceClassName = reader.readLine();

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/ConfigurableXMLFilter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/ConfigurableXMLFilter.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/ConfigurableXMLFilter.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -15,6 +15,7 @@
 
 import org.ajax4jsf.Messages;
 import org.ajax4jsf.io.parser.FastHtmlParser;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.webapp.nekko.NekkoParser;
 import org.ajax4jsf.webapp.tidy.TidyParser;
 import org.apache.commons.collections.ArrayStack;
@@ -197,8 +198,8 @@
 	    InputStream defaultprops = null;
 	    InputStream props = null;
 	    try {
-		defaultprops = TidyParser.class
-			.getResourceAsStream("tidy.properties");
+		defaultprops = URLToStreamHelper.urlToStreamSafe(TidyParser.class
+			.getResource("tidy.properties"));
 		if (null != defaultprops) {
 		    _tidyProperties.load(defaultprops);
 		    if (log.isDebugEnabled()) {
@@ -209,8 +210,8 @@
 		    }
 
 		// Second part - user-defined properties.
-		props = Thread.currentThread().getContextClassLoader()
-			.getResourceAsStream("tidy.properties");
+		props = URLToStreamHelper.urlToStreamSafe(Thread.currentThread().getContextClassLoader()
+			.getResource("tidy.properties"));
 		if (null != props) {
 		    _tidyProperties.load(props);
 		    if (log.isDebugEnabled()) {

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/tidy/TidyXMLFilter.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/tidy/TidyXMLFilter.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/tidy/TidyXMLFilter.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -27,6 +27,7 @@
 
 import org.ajax4jsf.Messages;
 import org.ajax4jsf.io.parser.FastHtmlParser;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.webapp.BaseXMLFilter;
 import org.ajax4jsf.webapp.HtmlParser;
 import org.apache.commons.collections.ArrayStack;
@@ -94,12 +95,14 @@
 			_tidyProperties = new Properties();
 			InputStream props = null;
 			try {
-				props = TidyXMLFilter.class.getResourceAsStream("tidy.properties");
+				props = URLToStreamHelper.urlToStreamSafe(
+						TidyXMLFilter.class.getResource("tidy.properties"));
 				if (null != props) {
 					_tidyProperties.load(props);
 				}
 				// Second part - user-defined properties.
-				props = Thread.currentThread().getContextClassLoader().getResourceAsStream("tidy.properties");
+				props = URLToStreamHelper.urlToStreamSafe(
+						Thread.currentThread().getContextClassLoader().getResource("tidy.properties"));
 				if (null != props) {
 					_tidyProperties.load(props);
 				}				

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/CharInfo.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/CharInfo.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/CharInfo.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -53,6 +53,7 @@
 
 import javax.xml.transform.TransformerException;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.xml.serializer.utils.MsgKey;
 import org.ajax4jsf.xml.serializer.utils.SystemIDResolver;
 import org.ajax4jsf.xml.serializer.utils.Utils;
@@ -219,13 +220,15 @@
             // requires a valid URI as parameter
             try {
                 if (internal) {
-                    is = CharInfo.class.getResourceAsStream(entitiesResource);
+                    is = URLToStreamHelper.urlToStreamSafe(
+                    		CharInfo.class.getResource(entitiesResource));
                 } else {
                     ClassLoader cl = ObjectFactory.findClassLoader();
                     if (cl == null) {
-                        is = ClassLoader.getSystemResourceAsStream(entitiesResource);
+                        is = URLToStreamHelper.urlToStreamSafe(
+                        		ClassLoader.getSystemResource(entitiesResource));
                     } else {
-                        is = cl.getResourceAsStream(entitiesResource);
+                        is = URLToStreamHelper.urlToStreamSafe(cl.getResource(entitiesResource));
                     }
 
                     if (is == null) {

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/OutputPropertiesFactory.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/OutputPropertiesFactory.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/OutputPropertiesFactory.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -49,6 +49,7 @@
 
 import javax.xml.transform.OutputKeys;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.xml.serializer.utils.MsgKey;
 import org.ajax4jsf.xml.serializer.utils.Utils;
 import org.ajax4jsf.xml.serializer.utils.WrappedRuntimeException;
@@ -401,16 +402,16 @@
                     .doPrivileged(new PrivilegedAction() {
                         public Object run()
                         {
-                            return OutputPropertiesFactory.class
-                                .getResourceAsStream(resourceName);
+                            return URLToStreamHelper.urlToStreamSafe(OutputPropertiesFactory.class
+                                .getResource(resourceName));
                         }
                     });
             }
             else
             {
                 // User may be using older JDK ( JDK < 1.2 )
-                is = OutputPropertiesFactory.class
-                    .getResourceAsStream(resourceName);
+                is = URLToStreamHelper.urlToStreamSafe(OutputPropertiesFactory.class
+                    .getResource(resourceName));
             }
 
             bis = new BufferedInputStream(is);

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -45,6 +45,8 @@
 import java.io.FileNotFoundException;
 import java.io.InputStream;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
+
 /**
  * This class is duplicated for each Xalan-Java subpackage so keep it in sync.
  * It is package private and therefore is not exposed as part of the Xalan-Java
@@ -125,9 +127,9 @@
     InputStream getResourceAsStream(ClassLoader cl, String name) {
         InputStream ris;
         if (cl == null) {
-            ris = ClassLoader.getSystemResourceAsStream(name);
+            ris = URLToStreamHelper.urlToStreamSafe(ClassLoader.getSystemResource(name));
         } else {
-            ris = cl.getResourceAsStream(name);
+            ris = URLToStreamHelper.urlToStreamSafe(cl.getResource(name));
         }
         return ris;
     }

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport12.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport12.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/xml/serializer/SecuritySupport12.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -49,6 +49,8 @@
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
+import org.ajax4jsf.resource.util.URLToStreamHelper;
+
 /**
  * This class is duplicated for each Xalan-Java subpackage so keep it in sync.
  * It is package private and therefore is not exposed as part of the Xalan-Java
@@ -132,9 +134,9 @@
                 public Object run() {
                     InputStream ris;
                     if (cl == null) {
-                        ris = ClassLoader.getSystemResourceAsStream(name);
+                        ris = URLToStreamHelper.urlToStreamSafe(ClassLoader.getSystemResource(name));
                     } else {
-                        ris = cl.getResourceAsStream(name);
+                        ris = URLToStreamHelper.urlToStreamSafe(cl.getResource(name));
                     }
                     return ris;
                 }

Modified: trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java	2008-02-07 16:56:08 UTC (rev 5923)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java	2008-02-07 17:03:07 UTC (rev 5924)
@@ -24,6 +24,7 @@
 import org.ajax4jsf.javascript.JSReference;
 import org.ajax4jsf.javascript.ScriptUtils;
 import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
+import org.ajax4jsf.resource.util.URLToStreamHelper;
 import org.ajax4jsf.webapp.tidy.TidyParser;
 import org.ajax4jsf.webapp.tidy.TidyXMLFilter;
 import org.richfaces.component.TemplateComponent;
@@ -59,7 +60,8 @@
 		Properties tidyProperties = new Properties();
 		InputStream propertiesStream = null;
 		try {
-			propertiesStream = TidyXMLFilter.class.getResourceAsStream("tidy.properties");
+			propertiesStream = URLToStreamHelper.urlToStreamSafe(
+					TidyXMLFilter.class.getResource("tidy.properties"));
 			tidyProperties.load(propertiesStream);
 		} finally {
 			if (propertiesStream != null) {




More information about the richfaces-svn-commits mailing list