sboag       01/06/26 20:01:05

  Modified:    java/src/org/apache/xalan/transformer
                        TransformerHandlerImpl.java
  Log:
  Send the errors to the error listener instead of trying to do a
  println to System.err.  This is still a bit funky, but I think it will
  do for now.
  This stuff has to be worked through better with JAXP 1.2.
  
  Revision  Changes    Path
  1.6       +61 -18    
xml-xalan/java/src/org/apache/xalan/transformer/TransformerHandlerImpl.java
  
  Index: TransformerHandlerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerHandlerImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TransformerHandlerImpl.java       2001/06/27 02:08:34     1.5
  +++ TransformerHandlerImpl.java       2001/06/27 03:01:03     1.6
  @@ -391,12 +391,13 @@
   
       //m_transformer.setTransformThread(listener);
       m_transformer.setSourceTreeDocForThread(m_dtm.getDocument());
  -                int cpriority = Thread.currentThread().getPriority();
  -            
  -                // runTransformThread is equivalent with the 2.0.1 code,
  -                // except that the Thread may come from a pool.
  -                m_transformer.runTransformThread( cpriority );
           
  +    int cpriority = Thread.currentThread().getPriority();
  +
  +    // runTransformThread is equivalent with the 2.0.1 code,
  +    // except that the Thread may come from a pool.
  +    m_transformer.runTransformThread( cpriority );
  +        
      //listener.setDaemon(false);
      //listener.start();
   
  @@ -649,14 +650,25 @@
      */
     public void warning(SAXParseException e) throws SAXException
     {
  -
  -    if (m_errorHandler != null)
  +    // This is not great, but we really would rather have the error 
  +    // handler be the error listener if it is a error handler.  Coroutine's 
fatalError 
  +    // can't really be configured, so I think this is the best thing right 
now 
  +    // for error reporting.  Possibly another JAXP 1.1 hole.  -sb
  +    javax.xml.transform.ErrorListener errorListener = 
m_transformer.getErrorListener();
  +    if(errorListener instanceof ErrorHandler)
       {
  -      m_errorHandler.warning(e);
  +      ((ErrorHandler)errorListener).warning(e);
       }
       else
       {
  -      System.err.println("TransformerHandlerImpl#warning: " + e);
  +      try
  +      {
  +        errorListener.warning(new 
javax.xml.transform.TransformerException(e));
  +      }
  +      catch(javax.xml.transform.TransformerException te)
  +      {
  +        throw e;
  +      }
       }
     }
   
  @@ -673,13 +685,29 @@
       // %REVIEW% I don't think this should be called.  -sb
       // clearCoRoutine(e);
   
  -    if (m_errorHandler != null)
  -    {
  -      m_errorHandler.error(e);
  +    // This is not great, but we really would rather have the error 
  +    // handler be the error listener if it is a error handler.  Coroutine's 
fatalError 
  +    // can't really be configured, so I think this is the best thing right 
now 
  +    // for error reporting.  Possibly another JAXP 1.1 hole.  -sb
  +    javax.xml.transform.ErrorListener errorListener = 
m_transformer.getErrorListener();
  +    if(errorListener instanceof ErrorHandler)
  +    {
  +      ((ErrorHandler)errorListener).error(e);
  +      if(null != m_errorHandler)
  +        m_errorHandler.error(e); // may not be called.
       }
       else
       {
  -      System.err.println("TransformerHandlerImpl#error: " + e);
  +      try
  +      {
  +        errorListener.error(new javax.xml.transform.TransformerException(e));
  +        if(null != m_errorHandler)
  +          m_errorHandler.error(e); // may not be called.
  +      }
  +      catch(javax.xml.transform.TransformerException te)
  +      {
  +        throw e;
  +      }
       }
     }
   
  @@ -693,16 +721,31 @@
      */
     public void fatalError(SAXParseException e) throws SAXException
     {
  -
       clearCoRoutine(e);
   
  -    if (m_errorHandler != null)
  -    {
  -      m_errorHandler.fatalError(e);
  +    // This is not great, but we really would rather have the error 
  +    // handler be the error listener if it is a error handler.  Coroutine's 
fatalError 
  +    // can't really be configured, so I think this is the best thing right 
now 
  +    // for error reporting.  Possibly another JAXP 1.1 hole.  -sb
  +    javax.xml.transform.ErrorListener errorListener = 
m_transformer.getErrorListener();
  +    if(errorListener instanceof ErrorHandler)
  +    {
  +      ((ErrorHandler)errorListener).fatalError(e);
  +      if(null != m_errorHandler)
  +        m_errorHandler.fatalError(e); // may not be called.
       }
       else
       {
  -      System.err.println("TransformerHandlerImpl#fatalError: " + e);
  +      try
  +      {
  +        errorListener.fatalError(new 
javax.xml.transform.TransformerException(e));
  +        if(null != m_errorHandler)
  +          m_errorHandler.fatalError(e); // may not be called.
  +      }
  +      catch(javax.xml.transform.TransformerException te)
  +      {
  +        throw e;
  +      }
       }
     }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to