Blob Blame History Raw
### 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;
 	}

 }