mmidy 99/12/03 11:01:04
Modified: src/org/apache/xalan/xpath/xml ProblemListenerDefault.java
XMLParserLiaison.java XMLParserLiaisonDefault.java
src/org/apache/xalan/xslt XSLTEngineImpl.java
Log:
Use one problem listener instance and make it static
Revision Changes Path
1.3 +24 -6
xml-xalan/src/org/apache/xalan/xpath/xml/ProblemListenerDefault.java
Index: ProblemListenerDefault.java
===================================================================
RCS file:
/home/cvs/xml-xalan/src/org/apache/xalan/xpath/xml/ProblemListenerDefault.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ProblemListenerDefault.java 1999/11/10 21:56:23 1.2
+++ ProblemListenerDefault.java 1999/12/03 19:01:03 1.3
@@ -64,7 +64,7 @@
*/
public class ProblemListenerDefault implements ProblemListener
{
- public java.io.PrintWriter out = new java.io.PrintWriter( System.err,
true );
+ private java.io.PrintWriter out = new java.io.PrintWriter( System.err,
true );
public String errorHeader = "Error: ";
public String warningHeader = "Warning: ";
@@ -82,7 +82,10 @@
String msg, String id, int lineNo, int charOffset)
{
if(null != out)
- out.println(((XMLPARSER == where)
+ {
+ synchronized(this)
+ {
+ out.println(((XMLPARSER == where)
? xmlHeader : (QUERYENGINE == where)
? queryHeader : xslHeader)+
((ERROR == classification)
@@ -94,7 +97,8 @@
((null == id)? "" : (", Location "+id))+
((0 == lineNo)? "" : (", line "+lineNo))+
((0 == charOffset)? "" : (", offset "+charOffset)));
-
+ }
+ }
return classification == ERROR;
}
@@ -105,9 +109,23 @@
public boolean message(String msg)
{
if(null != out)
- out.println( msg );
-
+ {
+ synchronized (this)
+ {
+ out.println( msg );
+ }
+ }
return false; // we don't know this is an error
- }
+ }
+
+ /**
+ * Set where diagnostics will be written. If
+ * the value is null, then diagnostics will be turned
+ * off.
+ */
+ public void setDiagnosticsOutput(java.io.PrintWriter pw)
+ {
+ out = pw;
+ }
}
1.3 +5 -0
xml-xalan/src/org/apache/xalan/xpath/xml/XMLParserLiaison.java
Index: XMLParserLiaison.java
===================================================================
RCS file:
/home/cvs/xml-xalan/src/org/apache/xalan/xpath/xml/XMLParserLiaison.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XMLParserLiaison.java 1999/11/25 04:22:07 1.2
+++ XMLParserLiaison.java 1999/12/03 19:01:03 1.3
@@ -194,6 +194,11 @@
* Set the current problem listener.
*/
public void setProblemListener(ProblemListener listener);
+
+ /**
+ * Get the current problem listener.
+ */
+ public ProblemListener getProblemListener();
}
1.11 +5 -10
xml-xalan/src/org/apache/xalan/xpath/xml/XMLParserLiaisonDefault.java
Index: XMLParserLiaisonDefault.java
===================================================================
RCS file:
/home/cvs/xml-xalan/src/org/apache/xalan/xpath/xml/XMLParserLiaisonDefault.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLParserLiaisonDefault.java 1999/12/03 08:43:13 1.10
+++ XMLParserLiaisonDefault.java 1999/12/03 19:01:03 1.11
@@ -79,17 +79,14 @@
/**
* The problem listener for handling problem reports.
*/
- private ProblemListener m_problemListener = null;
- private static ProblemListener m_problemListenerStatic;
+ private static ProblemListener m_problemListener = null;
-
/**
* Set the current problem listener.
*/
public void setProblemListener(ProblemListener listener)
{
- m_problemListener = listener;
- m_problemListenerStatic = m_problemListener;
+ m_problemListener = listener;
}
/**
@@ -107,8 +104,7 @@
{
m_problemListener = problemListener;
if(null == m_problemListener)
- m_problemListener = new ProblemListenerDefault();
- m_problemListenerStatic = m_problemListener;
+ m_problemListener = new ProblemListenerDefault();
}
/**
@@ -116,8 +112,7 @@
*/
public XMLParserLiaisonDefault()
{
- m_problemListener = new ProblemListenerDefault();
- m_problemListenerStatic = m_problemListener;
+ m_problemListener = new ProblemListenerDefault();
}
/**
@@ -1544,7 +1539,7 @@
public static void warning(int msg)
{
String fmsg = XSLMessages.createXPATHWarning(msg, null);
- m_problemListenerStatic.problem(XPathSupport.XPATHPROCESSOR,
+ m_problemListener.problem(XPathSupport.XPATHPROCESSOR,
XPathSupport.WARNING,
null,
null, fmsg, null, 0, 0);
1.18 +13 -26 xml-xalan/src/org/apache/xalan/xslt/XSLTEngineImpl.java
Index: XSLTEngineImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/XSLTEngineImpl.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- XSLTEngineImpl.java 1999/12/03 08:43:14 1.17
+++ XSLTEngineImpl.java 1999/12/03 19:01:04 1.18
@@ -291,17 +291,9 @@
* The stack of Variable stacks. A VariableStack will be
* pushed onto this stack for each template invocation.
*/
- VariableStack m_variableStacks = new VariableStack();
+ VariableStack m_variableStacks = new VariableStack();
/**
- * The XSL class can have a single listener that can be informed
- * of errors and warnings, and can normally control if an exception
- * is thrown or not (or the problem listeners can throw their
- * own RuntimeExceptions).
- */
- private static ProblemListener m_problemListener = null;
-
- /**
* If true, output carriage returns.
*/
boolean m_outputCarriageReturns = false;
@@ -361,8 +353,7 @@
Class parserLiaisonClass = Class.forName(parserLiaisonClassName);
Constructor parserLiaisonCtor =
parserLiaisonClass.getConstructor(null);
m_parserLiaison
- = (XMLParserLiaison)parserLiaisonCtor.newInstance(null);
- m_problemListener = new ProblemListenerDefault();
+ = (XMLParserLiaison)parserLiaisonCtor.newInstance(null);
m_parserLiaison.setEnvSupport(this);
}
catch(Exception e)
@@ -386,8 +377,7 @@
Class parserLiaisonClass = Class.forName(parserLiaisonClassName);
Constructor parserLiaisonCtor =
parserLiaisonClass.getConstructor(null);
m_parserLiaison
- = (XMLParserLiaison)parserLiaisonCtor.newInstance(null);
- m_problemListener = new ProblemListenerDefault();
+ = (XMLParserLiaison)parserLiaisonCtor.newInstance(null);
m_parserLiaison.setEnvSupport(this);
}
catch(Exception e)
@@ -410,8 +400,7 @@
* @see org.apache.xalan.xslt.xml4j.ProcessXSL
*/
public XSLTEngineImpl(XMLParserLiaison parserLiason)
- {
- m_problemListener = new ProblemListenerDefault();
+ {
m_parserLiaison = parserLiason;
m_parserLiaison.setEnvSupport(this);
}
@@ -428,8 +417,7 @@
* @see org.apache.xalan.xslt.xml4j.ProcessXSL
*/
XSLTEngineImpl(XMLParserLiaison parserLiason, XPathFactory xpathFactory)
- {
- m_problemListener = new ProblemListenerDefault();
+ {
m_parserLiaison = parserLiason;
m_parserLiaison.setEnvSupport(this);
}
@@ -1295,7 +1283,7 @@
public void message(Node styleNode, Node sourceNode, String msg)
throws SAXException
{
- boolean shouldThrow = m_problemListener.message(msg);
+ boolean shouldThrow = getProblemListener().message(msg);
if(shouldThrow)
{
throw new XSLProcessorException(msg);
@@ -1353,7 +1341,7 @@
? locator.getPublicId()
: locator.getSystemId();
- boolean shouldThrow =
m_problemListener.problem(ProblemListener.XSLPROCESSOR,
+ boolean shouldThrow =
getProblemListener().problem(ProblemListener.XSLPROCESSOR,
ProblemListener.WARNING,
styleNode, sourceNode,
formattedMsg,
id,
@@ -1421,7 +1409,7 @@
? locator.getPublicId()
: locator.getSystemId();
- boolean shouldThrow =
m_problemListener.problem(ProblemListener.XSLPROCESSOR,
+ boolean shouldThrow =
getProblemListener().problem(ProblemListener.XSLPROCESSOR,
ProblemListener.ERROR,
null, null, formattedMsg,
id,
@@ -1468,7 +1456,7 @@
? locator.getPublicId()
: locator.getSystemId();
- boolean shouldThrow =
m_problemListener.problem(ProblemListener.XSLPROCESSOR,
+ boolean shouldThrow =
getProblemListener().problem(ProblemListener.XSLPROCESSOR,
ProblemListener.ERROR,
styleNode, sourceNode,
formattedMsg,
id,
@@ -1549,9 +1537,9 @@
public void setDiagnosticsOutput(java.io.PrintWriter pw)
{
m_diagnosticsPrintWriter = pw;
- if(m_problemListener instanceof ProblemListenerDefault)
+ if(getProblemListener() instanceof ProblemListenerDefault)
{
- ((ProblemListenerDefault)m_problemListener).out = pw;
+
((ProblemListenerDefault)getProblemListener()).setDiagnosticsOutput(pw);
}
}
@@ -3296,7 +3284,6 @@
*/
public void setProblemListener(ProblemListener l)
{
- m_problemListener = l;
m_parserLiaison.setProblemListener(l);
}
@@ -3309,8 +3296,8 @@
* @return A ProblemListener interface.
*/
public ProblemListener getProblemListener()
- {
- return m_problemListener;
+ {
+ return m_parserLiaison.getProblemListener();
}
private void ____FormatterListener_INTERFACE____(){}