### Eclipse Workspace Patch 1.0 #P org.eclipse.compare Index: compare/org/eclipse/compare/internal/patch/Utilities.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Utilities.java,v retrieving revision 1.3 diff -u -r1.3 Utilities.java --- compare/org/eclipse/compare/internal/patch/Utilities.java 4 Mar 2009 09:31:22 -0000 1.3 +++ compare/org/eclipse/compare/internal/patch/Utilities.java 20 Aug 2010 20:53:28 -0000 @@ -67,6 +67,13 @@ } return true; } + public String getCharset() throws CoreException { + if (storage instanceof IEncodedStorage) { + IEncodedStorage es = (IEncodedStorage) storage; + return es.getCharset(); + } + return super.getCharset(); + } }; } #P org.eclipse.compare.core Index: src/org/eclipse/compare/internal/core/patch/FileDiffResult.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/internal/core/patch/FileDiffResult.java,v retrieving revision 1.10 diff -u -r1.10 FileDiffResult.java --- src/org/eclipse/compare/internal/core/patch/FileDiffResult.java 26 May 2010 08:43:22 -0000 1.10 +++ src/org/eclipse/compare/internal/core/patch/FileDiffResult.java 20 Aug 2010 20:53:28 -0000 @@ -25,6 +25,7 @@ import org.eclipse.compare.patch.IHunk; import org.eclipse.compare.patch.PatchConfiguration; import org.eclipse.compare.patch.ReaderCreator; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; @@ -70,7 +71,12 @@ this.fMatches= false; this.fDiffProblem= false; boolean create= false; - this.charset = Utilities.getCharset(content); + try { + this.charset = content.getCharset(); + } catch (CoreException e) { + // Log and continue + ComparePlugin.log(e); + } //If this diff is an addition, make sure that it doesn't already exist boolean exists = targetExists(content); if (this.fDiff.getDiffType(getConfiguration().isReversed()) == FilePatch2.ADDITION) { Index: src/org/eclipse/compare/patch/ReaderCreator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.compare/plugins/org.eclipse.compare.core/src/org/eclipse/compare/patch/ReaderCreator.java,v retrieving revision 1.3 diff -u -r1.3 ReaderCreator.java --- src/org/eclipse/compare/patch/ReaderCreator.java 2 Mar 2009 13:47:14 -0000 1.3 +++ src/org/eclipse/compare/patch/ReaderCreator.java 20 Aug 2010 20:53:28 -0000 @@ -39,4 +39,15 @@ public boolean canCreateReader() { return true; } + + /** + * Return the charset of the underlying data or null if the + * charset could not be determined. + * @return the charset of the underlying data or null + * @throws CoreException + */ + public String getCharset() throws CoreException { + return null; + } + }