Bug 188898 [Apply Patch] Internal Error written to .log when applying patch
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
index 374c5d8..b9781a6 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
@@ -280,7 +280,7 @@
 	 */
 	public static List load(IStorage file, boolean create) {
 		List lines= null;
-		if (!create && file != null) {
+		if (!create && file != null && exists(file)) {
 			// read current contents
 			String charset = Utilities.getCharset(file);
 			InputStream is= null;
@@ -315,6 +315,13 @@
 		return lines;
 	}
 
+	private static boolean exists(IStorage file) {
+		if (file instanceof IFile) {
+			return ((IFile) file).exists();
+		}
+		return true;
+	}
+
 	private static List readLines(BufferedReader reader) {
 		List lines;
 		LineReader lr= new LineReader(reader);
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
index 374c5d8..b9781a6 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
@@ -280,7 +280,7 @@
 	 */
 	public static List load(IStorage file, boolean create) {
 		List lines= null;
-		if (!create && file != null) {
+		if (!create && file != null && exists(file)) {
 			// read current contents
 			String charset = Utilities.getCharset(file);
 			InputStream is= null;
@@ -315,6 +315,13 @@
 		return lines;
 	}
 
+	private static boolean exists(IStorage file) {
+		if (file instanceof IFile) {
+			return ((IFile) file).exists();
+		}
+		return true;
+	}
+
 	private static List readLines(BufferedReader reader) {
 		List lines;
 		LineReader lr= new LineReader(reader);