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