Bug 215844 LineComparator ignores IOExceptions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
index 43c4080..fbf98c7 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
@@ -21,21 +21,15 @@
private String[] fLines;
- public LineComparator(InputStream is, String encoding) throws UnsupportedEncodingException {
+ public LineComparator(InputStream is, String encoding) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding));
String line;
ArrayList ar = new ArrayList();
- try {
- while ((line = br.readLine()) != null)
- ar.add(line);
- } catch (IOException e) {
- // silently ignored
+ while ((line = br.readLine()) != null) {
+ ar.add(line);
}
-// try {
-// is.close();
-// } catch (IOException e1) {
-// }
+ // It is the responsibility of the caller to close the stream
fLines = (String[]) ar.toArray(new String[ar.size()]);
}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
index f6bb2346..5ecf4e0 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
@@ -46,6 +46,8 @@
o= new LineComparator(other, otherEncoding);
} catch (UnsupportedEncodingException e) {
return new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, 1, MergeMessages.TextAutoMerge_inputEncodingError, e);
+ } catch (IOException e) {
+ return new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, 1, e.getMessage(), e);
}
try {
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
index 43c4080..fbf98c7 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/LineComparator.java
@@ -21,21 +21,15 @@
private String[] fLines;
- public LineComparator(InputStream is, String encoding) throws UnsupportedEncodingException {
+ public LineComparator(InputStream is, String encoding) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is, encoding));
String line;
ArrayList ar = new ArrayList();
- try {
- while ((line = br.readLine()) != null)
- ar.add(line);
- } catch (IOException e) {
- // silently ignored
+ while ((line = br.readLine()) != null) {
+ ar.add(line);
}
-// try {
-// is.close();
-// } catch (IOException e1) {
-// }
+ // It is the responsibility of the caller to close the stream
fLines = (String[]) ar.toArray(new String[ar.size()]);
}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
index f6bb2346..5ecf4e0 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/merge/TextStreamMerger.java
@@ -46,6 +46,8 @@
o= new LineComparator(other, otherEncoding);
} catch (UnsupportedEncodingException e) {
return new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, 1, MergeMessages.TextAutoMerge_inputEncodingError, e);
+ } catch (IOException e) {
+ return new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, 1, e.getMessage(), e);
}
try {
diff --git a/bundles/org.eclipse.team.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.team.ui/META-INF/MANIFEST.MF
index 59a63aa..96475fa 100644
--- a/bundles/org.eclipse.team.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.team.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.team.ui; singleton:=true
-Bundle-Version: 3.3.1.qualifier
+Bundle-Version: 3.3.2.qualifier
Bundle-Activator: org.eclipse.team.internal.ui.TeamUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/LineComparator.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/LineComparator.java
index 6128366..0a0b7b0 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/LineComparator.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/LineComparator.java
@@ -68,7 +68,7 @@
}
- public static LineComparator create(IStorage storage, String outputEncoding) throws CoreException, UnsupportedEncodingException {
+ public static LineComparator create(IStorage storage, String outputEncoding) throws CoreException, IOException {
InputStream is = new BufferedInputStream(storage.getContents());
try {
String encoding = getEncoding(storage, outputEncoding);
@@ -92,17 +92,14 @@
return outputEncoding;
}
- public LineComparator(InputStream is, String encoding) throws UnsupportedEncodingException {
+ public LineComparator(InputStream is, String encoding) throws IOException {
TrailingLineFeedDetector trailingLineFeedDetector = new TrailingLineFeedDetector(is);
BufferedReader br = new BufferedReader(new InputStreamReader(trailingLineFeedDetector, encoding));
String line;
ArrayList ar = new ArrayList();
- try {
- while ((line = br.readLine()) != null)
- ar.add(line);
- } catch (IOException e) {
- // silently ignored
+ while ((line = br.readLine()) != null) {
+ ar.add(line);
}
try {
is.close();
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/TextStorageMerger.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/TextStorageMerger.java
index 24a9637..7f8af09 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/TextStorageMerger.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/mapping/TextStorageMerger.java
@@ -34,6 +34,8 @@
o= LineComparator.create(other,outputEncoding);
} catch (UnsupportedEncodingException e) {
throw new CoreException (new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, UNSUPPORTED_ENCODING, TeamUIMessages.TextAutoMerge_inputEncodingError, e));
+ } catch (IOException e) {
+ throw new CoreException (new Status(IStatus.ERROR, CompareUI.PLUGIN_ID, INTERNAL_ERROR, e.getMessage(), e));
}
try {