### Eclipse Workspace Patch 1.0 #P org.eclipse.mylyn.bugzilla.core Index: src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java,v retrieving revision 1.40 diff -u -r1.40 AbstractReportFactory.java --- src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java 20 May 2008 23:13:39 -0000 1.40 +++ src/org/eclipse/mylyn/internal/bugzilla/core/AbstractReportFactory.java 10 Aug 2008 19:21:32 -0000 @@ -9,7 +9,7 @@ package org.eclipse.mylyn.internal.bugzilla.core; import java.io.BufferedInputStream; -import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -48,6 +48,7 @@ * @throws GeneralSecurityException */ protected void collectResults(DefaultHandler contentHandler, boolean clean) throws IOException { + File tempFile = null; if (inStream == null) { return; @@ -77,9 +78,9 @@ } if (clean) { - StringBuffer result = XmlCleaner.clean(in); - StringReader strReader = new StringReader(result.toString()); - in = new BufferedReader(strReader); + tempFile = File.createTempFile("XmlCleaner-", "tmp"); + tempFile.deleteOnExit(); + in = XmlCleaner.clean(in, tempFile); } try { @@ -125,6 +126,12 @@ throw new IOException(e.getMessage()); // } } + + finally { + if (tempFile != null) { + tempFile.delete(); + } + } } } Index: src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java =================================================================== RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.bugzilla.core/src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java,v retrieving revision 1.11 diff -u -r1.11 XmlCleaner.java --- src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java 30 Apr 2008 15:34:35 -0000 1.11 +++ src/org/eclipse/mylyn/internal/bugzilla/core/XmlCleaner.java 10 Aug 2008 19:21:33 -0000 @@ -8,6 +8,11 @@ package org.eclipse.mylyn.internal.bugzilla.core; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.text.ParseException; @@ -25,14 +30,13 @@ */ public class XmlCleaner { - public static StringBuffer clean(Reader in) { + public static BufferedReader clean(Reader in, File tempFile) { HtmlStreamTokenizer tokenizer = new HtmlStreamTokenizer(in, null); - StringBuffer content = new StringBuffer(); - - // Hack since HtmlStreamTokenizer not familiar with xml tag. - content.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); try { + BufferedWriter content = new BufferedWriter(new FileWriter(tempFile)); + // Hack since HtmlStreamTokenizer not familiar with xml tag. + content.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); for (Token token = tokenizer.nextToken(); token.getType() != Token.EOF; token = tokenizer.nextToken()) { if (token.getType() == Token.TAG) { @@ -50,12 +54,15 @@ content.append(token.toString()); } } + content.flush(); + content.close(); + return new BufferedReader(new FileReader(tempFile)); } catch (IOException e) { } catch (ParseException e) { } - return content; + return null; } }