You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by yw...@k4m.com on 2001/11/12 04:07:11 UTC

Is apache-soap lib thread-safe?

                                                                                       
                                                                                       
                                         (Embedded image moved to file: pic11478.gif)  
                                                                                       
                                                                                       
                                                                                       
   Hi,                                                                                 
   I was trying to test simple SOAP Service example.(a bit updated src)                
   The client creates a large number of threads  and each thread builds its own call   
   object and sends two numbers to the server to add.                                  
                                                                                       
   The results which I got were the following                                          
                                                                                       
   o Exception occurred in the readConfigFile() method in the ServiceManager.java      
                                                                                       
                                                                                       
                                                                                       
   Error processing configuration file                                                 
   Error processing configuration file                                                 
   Error was: org.xml.sax.SAXException: FWK005 parse may not be called while parsing.  
   Error was: org.xml.sax.SAXException: FWK005 parse may not be called while parsing.  
                                                                                       
   o Exception occurred in the BaseConfigManager.java                                  
                                                                                       
                                                                                       
                                                                                       
   java.lang.NullPointerException                                                      
           at org.apache.soap.server.BaseConfigManager.query(BaseConfigManager.java    
   :168)                                                                               
           at org.apache.soap.server.ServiceManager.query(ServiceManager.java:266)     
           at org.apache.soap.server.RPCRouter.extractCallFromEnvelope(RPCRouter.ja    
   va:33)                                                                              
           at k4m.eCross.server.eCrossListener2.doPost(eCrossListener2.java:217)       
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)             
           at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)             
           at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4    
   05)                                                                                 
           at org.apache.tomcat.core.Handler.service(Handler.java:287)                 
           at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372    
   )                                                                                   
           at org.apache.tomcat.core.ContextManager.internalService(ContextManager.    
   java:797)                                                                           
           at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743    
   )                                                                                   
           at org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio    
   n(HttpConnectionHandler.java:213)                                                   
           at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:    
   416)                                                                                
           at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java    
   :501)                                                                               
           at java.lang.Thread.run(Thread.java:484)                                    
                                                                                       
   I think that the BaseConfigManager Object is sharing by threads.                    
   But, BaseConfigManager's instance variable(protected Hashtable      dds      = new  
   Hashtable()) is not thread-safe.                                                    
                                                                                       
   I wonder that is apache-soap lib thread-safe?                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
                                                                                       
   Young Woo Baek                                                                      
   S/W 기술연구소                                                                      
                                                                                       
   K4M Inc. (Knowledge For the new Millennium)                                         
   E-Mail : ywbaek@k4m.com, URL : http://www.k4m.com                                   
   Mobile : +82-16-438-7157                                                            
   Tel. : (Seoul)+82-2-3451-1857, (Taejon)+82-42-472-8618                              
   Fax. : (Seoul)+82-2-553-6460, (Taejon)+82-42-472-7928                               
                                         (Embedded image moved to file: pic29358.gif)