You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2008/02/28 02:29:46 UTC

svn commit: r631801 - /jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java

Author: sebb
Date: Wed Feb 27 17:29:33 2008
New Revision: 631801

URL: http://svn.apache.org/viewvc?rev=631801&view=rev
Log:
Capture Tidy errors so we can report them
Ensure the Tree has a valid Node to start

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=631801&r1=631800&r2=631801&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Wed Feb 27 17:29:33 2008
@@ -26,7 +26,7 @@
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
+import java.io.StringWriter;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -69,13 +69,11 @@
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreePath;
 import javax.swing.tree.TreeSelectionModel;
-import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.jmeter.assertions.AssertionResult;
 import org.apache.jmeter.samplers.Clearable;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jmeter.util.TidyException;
 import org.apache.jmeter.util.XPathUtil;
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
 import org.apache.jorphan.logging.LoggingManager;
@@ -83,6 +81,7 @@
 import org.apache.log.Logger;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.w3c.tidy.Tidy;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -556,30 +555,18 @@
 		// there is also a javax.swing.text.Document class.
 		org.w3c.dom.Document document = null;
 
-		try {
-
-            document = XPathUtil.makeDocument(baIS,false,false,false,true,true,false,false);
-			JPanel domTreePanel = new DOMTreePanel(document);
-
-			document.normalize();
-
-			view = domTreePanel;
-		} catch (SAXParseException e) {
-			showErrorMessageDialog(saxErrorHandler.getErrorMessage(), saxErrorHandler.getMessageType());
-			log.debug(e.getMessage());
-		} catch (SAXException e) {
-			showErrorMessageDialog(e.getMessage(), JOptionPane.ERROR_MESSAGE);
-			log.debug(e.getMessage());
-		} catch (IOException e) {
-			showErrorMessageDialog(e.getMessage(), JOptionPane.ERROR_MESSAGE);
-			log.debug(e.getMessage());
-		} catch (ParserConfigurationException e) {
-			showErrorMessageDialog(e.getMessage(), JOptionPane.ERROR_MESSAGE);
-			log.debug(e.getMessage());
-		} catch (TidyException e) {
-            showErrorMessageDialog(e.getMessage(), JOptionPane.ERROR_MESSAGE);
-            log.debug(e.getMessage());
+        StringWriter sw = new StringWriter();
+        Tidy tidy = XPathUtil.makeTidyParser(true, true, true, sw);
+        document = tidy.parseDOM(baIS, null);
+        document.normalize();
+        if (tidy.getParseErrors() > 0) {
+            showErrorMessageDialog(sw.toString(),
+                    "Tidy: " + tidy.getParseErrors() + " errors, " + tidy.getParseWarnings() + " warnings",
+                    JOptionPane.WARNING_MESSAGE);
         }
+
+        JPanel domTreePanel = new DOMTreePanel(document);    
+        view = domTreePanel;
 		resultsScrollPane.setViewportView(view);
 		textButton.setEnabled(true);
 		htmlButton.setEnabled(true);
@@ -949,7 +936,7 @@
 		 */
 		private Node getFirstElement(Node parent) {
 			NodeList childNodes = parent.getChildNodes();
-			Node toReturn = null;
+			Node toReturn = parent; // Must return a valid node, or may generate an NPE
 			for (int i = 0; i < childNodes.getLength(); i++) {
 				Node childNode = childNodes.item(i);
 				toReturn = childNode;
@@ -1022,8 +1009,12 @@
 	}
 
 	private static void showErrorMessageDialog(String message, int messageType) {
-		JOptionPane.showMessageDialog(null, message, "Error", messageType);
+	    showErrorMessageDialog(message, "Error", messageType);
 	}
+
+    private static void showErrorMessageDialog(String message, String title, int messageType) {
+        JOptionPane.showMessageDialog(null, message, title, messageType);
+    }
 
 	// Helper method to construct SAX error details
 	private static String errorDetails(SAXParseException spe) {



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org