17787 16899
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
index 749142e..6e88516 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/Feature.java
@@ -376,7 +376,7 @@
 				}	

 			

 				for (int i = 0; i < references.length; i++) {

-					setMonitorTaskName(subMonitor,msg+references[i].getIdentifier());

+					setMonitorTaskName(subMonitor,msg+" "+references[i].getIdentifier());

 					consumer.store(references[i], subMonitor);

 				}

 			} else {

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
index d854a0d..a667187 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/FeatureContentProvider.java
@@ -7,6 +7,7 @@
 import java.io.*;

 import java.net.URL;

 

+import org.eclipse.core.runtime.CoreException;

 import org.eclipse.update.core.model.*;

 import org.eclipse.update.internal.core.Policy;

 import org.eclipse.update.internal.core.UpdateManagerPlugin;

@@ -77,12 +78,13 @@
 	 * @param ref content reference

 	 * @param monitor progress monitor, can be <code>null</code>

 	 * @exception IOException

+	 * @exception CoreException

 	 * @since 2.0

 	 */

 	public ContentReference asLocalReference(

 		ContentReference ref,

 		InstallMonitor monitor)

-		throws IOException {

+		throws IOException,CoreException {

 

 		// check to see if this is already a local reference

 		if (ref.isLocalReference())

@@ -101,9 +103,9 @@
 		

 			// 

 			// download the referenced file into local temporary area

-			localFile = Utilities.createLocalFile(getWorkingDirectory(), key, null /*name*/);		

 			InputStream is = null;

 			OutputStream os = null;

+			localFile = Utilities.createLocalFile(getWorkingDirectory(), key, null /*name*/);			

 			try {

 				if (monitor != null) {

 					monitor.saveState();

@@ -118,7 +120,7 @@
 				Utilities.copy(is, os, monitor);

 			} catch (IOException e) {

 				Utilities.removeLocalFile(key);

-				throw e;

+				throw Utilities.newCoreException(Policy.bind("FeatureContentProvider.UnableToCreate",new Object[]{localFile}),e);

 			} finally {

 				if (is != null)

 					try {

@@ -145,11 +147,12 @@
 	 * 

 	 * @param ref content reference

 	 * @param monitor progress monitor, can be <code>null</code>

-	 * @exception IOException	  

+	 * @exception IOException	

+	 * @exception CoreException  

 	 * @since 2.0

 	 */

 	public File asLocalFile(ContentReference ref, InstallMonitor monitor)

-		throws IOException {

+		throws IOException,CoreException {

 		File file = ref.asFile();

 		if (file != null)

 			return file;

diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
index 61d3b0e..917c383 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties
@@ -7,12 +7,12 @@
 ContentReference.UnableToCreateInputStream= Unable to create an input stream for the reference {0}.
 ContentReference.UnableToReturnReferenceAsFile= Unable to return reference {0} as File.
 ContentReference.UnableToReturnReferenceAsURL= Unable to return reference {0} as URL.
-ContentReference.HttpNok= Error accessing remote reference {0} : Return code: {1}
+ContentReference.HttpNok= Error accessing remote reference {0}: Return code: {1}
 ContentReference.FileDoesNotExist=The file {0} does not exist on the filesystem.
 
 Feature.SiteAlreadySet= Internal Error: Site already set for the feature {0}.
 Feature.TaskInstallFeatureFiles= Installing feature files: 
-Feature.TaskInstallPluginFiles= Installing plug-in {0} files :
+Feature.TaskInstallPluginFiles= Installing plug-in {0} files:
 Feature.TaskInstallNonPluginsFiles= Installing non-plug-in files: 
 Feature.NoContentProvider= The Feature {0} does not have a Content Provider. Internal Error.
 Feature.NoFeatureContentConsumer= The Feature {0} does not have a Content Consumer. Internal Error.
@@ -22,6 +22,7 @@
 Feature.UnableToInitializeFeatureReference= Unable to initialize Feature Reference for versioned identifier {0}.
 
 FeatureContentProvider.Downloading= Downloading:
+FeatureContentProvider.UnableToCreate= Unable to create file \"{0}\"
 
 InstallHandler.unableToCreateHandler = Unable to create custom install handler for feature \"{0}\".
 InstallHandler.notFound = Custom install handler required by feature \"{0}\" was not found.
@@ -207,7 +208,7 @@
 SiteURLFactory.UnableToCreateURL= Internal Error. Unable to create a URL from {0}.
 SiteURLFactory.UnableToAccessSiteStream= Unable to access Site stream: {0}
 
-JarVerifier.Verify= Verifying : {0}
+JarVerifier.Verify= Verifying: {0}
 JarVerifier.UnableToFindEncryption= Unable to find algorithm to verify integrity of KeyStore {0}.
 JarVerifier.UnableToLoadCertificate= Unable to load one or multiples certificates in the KeyStore {0}.
 JarVerifier.UnableToFindProviderForKeystore= Unable to find provider for the KeyStore type {0}.