log errors during configuration parsing
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
index 7b1c4d1..63d62a7 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationParser.java
@@ -60,7 +60,7 @@
 			configURL = url;
 			if ("file".equals(url.getProtocol())) {
 				File inputFile = new File(url.getFile());
-				if (!inputFile.exists())
+				if (!inputFile.exists() || !inputFile.canRead())
 					return null;
 				input = new FileInputStream(inputFile);
 			} else 
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
index e6e34cb..3b43763 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java
@@ -1148,6 +1148,8 @@
 				config = parser.parse(tempURL); 
 				if (config == null)
 					throw new Exception();
+				else
+					config.setDirty(true); // force saving to platform.xml
 			} catch (Exception e2) {
 				try {
 					// check the backup
@@ -1167,6 +1169,8 @@
 					}
 					if (config == null)
 						throw originalException; // we tried, but no config here ...
+					else
+						config.setDirty(true); // force saving to platform.xml
 				} catch (IOException e3) {
 					throw originalException; // we tried, but no config here ...
 				}