You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/12/22 18:13:26 UTC

svn commit: r1222353 - /karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java

Author: jbonofre
Date: Thu Dec 22 17:13:25 2011
New Revision: 1222353

URL: http://svn.apache.org/viewvc?rev=1222353&view=rev
Log:
[KARAF-1122] Feature <configfile/> now creates the final file only if the URL stream is available

Modified:
    karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java

Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java?rev=1222353&r1=1222352&r2=1222353&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java Thu Dec 22 17:13:25 2011
@@ -758,18 +758,21 @@ public class FeaturesServiceImpl impleme
     		LOGGER.info("configFile already exist, don't override it");
     		return;
     	}
-    	
-    	if (!file.exists()) {
-    		File parentFile = file.getParentFile();
-    		if (parentFile != null)
-    			parentFile.mkdirs();
-    		file.createNewFile();
-    	}
-    	
-    	FileOutputStream fop = new FileOutputStream(file);
+
         InputStream is = null;
+        FileOutputStream fop = null;
         try {
+            URL fileLocationURL = new URL(fileLocation);
             is = new BufferedInputStream(new URL(fileLocation).openStream());
+
+            if (!file.exists()) {
+                File parentFile = file.getParentFile();
+                if (parentFile != null)
+                    parentFile.mkdirs();
+                file.createNewFile();
+            }
+
+            fop = new FileOutputStream(file);
         
             int bytesRead;
             byte[] buffer = new byte[1024];
@@ -786,8 +789,10 @@ public class FeaturesServiceImpl impleme
 		} finally {
 			if (is != null)
 				is.close();
-			fop.flush();
-			fop.close();
+            if (fop != null) {
+			    fop.flush();
+			    fop.close();
+            }
 		}
             
     }