sboag       01/06/26 22:52:17

  Modified:    java/src/org/apache/xalan/transformer
                        TransformerHandlerImpl.java
  Log:
  If the incremental flag is off, then don't use threads at all...
  tweak stuff in clearCoRoutine so that we call waitTransformThread,
  so we don't exit before the transform thread has finished.
  
  Revision  Changes    Path
  1.7       +34 -20    
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TransformerHandlerImpl.java       2001/06/27 03:01:03     1.6
  +++ TransformerHandlerImpl.java       2001/06/27 05:52:16     1.7
  @@ -170,8 +170,22 @@
             if(null != ex)
             {
               sp.getCoroutineManager().co_exit(sp.getParserCoroutineID());
  +            sp.doMore(false, sax2dtm.getAppCoroutineID()); 
  +            
  +            // Actually, I think we're always incremental here...
  +            if(DTMManager.getIncremental())
  +            {
  +              try
  +              {
  +                m_transformer.waitTransformThread();
  +              }
  +              catch(SAXException se){}
  +            }
  +          }
  +          else
  +          {
  +            sp.doMore(false, sax2dtm.getAppCoroutineID()); 
             }
  -          sp.doMore(false, sax2dtm.getAppCoroutineID()); 
           }
         }
         
  @@ -182,17 +196,6 @@
         m_errorHandler = null;
         m_lexicalHandler = null;
         
  -      if(null != ex)
  -      {
  -        Thread thread = m_transformer.getTransformThread();
  -        if(null != thread)
  -        {
  -          thread.interrupt();
  -          // Damn... we can't stop() it, since stop() is deprecated.
  -        }
  -        // I don't think we need to do anything else with the exception.
  -      }
  -      
         if(DEBUG)
           System.out.println("...exiting clearCoRoutine");
       }
  @@ -390,13 +393,16 @@
      // Thread listener = new Thread(m_transformer);
   
       //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 );
  +    if(DTMManager.getIncremental())
  +    {
  +      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 );
  +    }
           
      //listener.setDaemon(false);
      //listener.start();
  @@ -427,7 +433,15 @@
         m_contentHandler.endDocument();
       }
       
  -                m_transformer.waitTransformThread();
  +    if(DTMManager.getIncremental())
  +    {
  +      m_transformer.waitTransformThread();
  +    }
  +    else
  +    {
  +      m_transformer.setSourceTreeDocForThread(m_dtm.getDocument());
  +      m_transformer.run();
  +    }
      /* Thread transformThread = m_transformer.getTransformThread();
   
       if (null != transformThread)
  
  
  

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

Reply via email to