You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/09/12 13:48:01 UTC
svn commit: r996297 -
/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
Author: apetrelli
Date: Sun Sep 12 11:48:00 2010
New Revision: 996297
URL: http://svn.apache.org/viewvc?rev=996297&view=rev
Log:
TILES-515
Separated exception handling of URL.openConnection from the rest to achieve OSGi compatibility.
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java?rev=996297&r1=996296&r2=996297&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java Sun Sep 12 11:48:00 2010
@@ -23,6 +23,7 @@ package org.apache.tiles.definition.dao;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
@@ -265,23 +266,46 @@ public abstract class BaseLocaleUrlDefin
*/
protected Map<String, Definition> loadDefinitionsFromURL(URL url) {
Map<String, Definition> defsMap = null;
+
+ URLConnection connection = null;
+ try {
+ connection = url.openConnection();
+ } catch (IOException e) {
+ // File not found. continue.
+ if (log.isDebugEnabled()) {
+ log.debug("I/O exception thrown when opening URL connection to "
+ + url.toString() + ", continue");
+ }
+ return null;
+ }
+
+ InputStream stream = null;
try {
- URLConnection connection = url.openConnection();
connection.connect();
lastModifiedDates.put(url.toExternalForm(), connection
.getLastModified());
// Definition must be collected, starting from the base
// source up to the last localized file.
- defsMap = reader.read(connection.getInputStream());
+ stream = connection.getInputStream();
+ defsMap = reader.read(stream);
} catch (FileNotFoundException e) {
// File not found. continue.
if (log.isDebugEnabled()) {
- log.debug("File " + null + " not found, continue");
+ log.debug("File " + url.toString() + " not found, continue");
}
} catch (IOException e) {
throw new DefinitionsFactoryException(
"I/O error processing configuration.", e);
+ } finally {
+ try {
+ if (stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ throw new DefinitionsFactoryException(
+ "I/O error closing " + url.toString(), e);
+ }
}
return defsMap;