[ 
https://issues.apache.org/jira/browse/CXF-865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

willem Jiang resolved CXF-865.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1
                   2.0.4

The fix should be in the svn repository now.

> CXF http-jetty transport do not call the jetty server engine shutdown when 
> the server stop
> ------------------------------------------------------------------------------------------
>
>                 Key: CXF-865
>                 URL: https://issues.apache.org/jira/browse/CXF-865
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.0
>            Reporter: willem Jiang
>            Assignee: willem Jiang
>             Fix For: 2.0.4, 2.1
>
>
> It appears that stopping the server in CXF is not shutting down the Jetty 
> engine, which causes my application to hang because Jetty's threads are still 
> blocking on the server socket accept. After a shutdown, I still see Thread 
> [btpool0-0 - Acceptor0 [EMAIL PROTECTED]:10001] (Running).
> I have a simple test application pasted below that can reproduce the problem. 
> At this point I had to add some calls to get the destination and cast it to a 
> Jetty specific class to get things to exit. Is there a better way to do this? 
> Is there something I'm not configuring correctly? Any help is appreciated.
>  
> This is under Java 1.5 with CXF 2.0. Jetty is being included from the CXF 
> libs directory. 
>  
> package org.mpilone.cxftest;
>  
> import java.io.IOException;
> import org.apache.cxf.endpoint.Server;
> import org.apache.cxf.frontend.ServerFactoryBean;
>  
> public class CxfJettyTest
> {
>   public void doIt()
>   {
>     System.out.println("Running test method");
>   }
>  
>   public static void main(String[] args) throws IOException
>   {
>     // Create an Service and Server
>     ServerFactoryBean serverFactory = new ServerFactoryBean();
>     serverFactory.setServiceClass(CxfJettyTest.class);
>     serverFactory.setServiceBean(new CxfJettyTest());
>     serverFactory.setAddress("http://localhost:10001/RemoteApi";);
>     Server mServer = serverFactory.create();
>  
>     mServer.start();
>     System.in.read();
>     mServer.stop();
>  
>     // Adding these lines allows the application to exit, but
>     // WARNING: EXCEPTION
>     // java.nio.channels.ClosedChannelException
>     // log statements are produced.
>  
> // JettyHTTPDestination jettyDest = (JettyHTTPDestination)
> // mServer.getDestination();
> // JettyHTTPServerEngine jettyEngine = (JettyHTTPServerEngine)
> // jettyDest.getEngine();
> // jettyEngine.shutdown();
>  
>     System.out.println("Exiting");
>   }
> }
> If you looking into the code you will find there is a note in the 
> JettyHTTPServerEngine's removeServant(URL url)
>             /* Bug in Jetty, we cannot do this.  If we restart later, data 
> goes off
>              * someplace unknown
>             if (servantCount == 0) {
>                 try {
>                    ....
>             }*/
> I just added the shutdown engine's code below the comments and tested it 
> against the systest. There were some  tests (such as ws.rm , mtom )failed.
> It looks like if we shutdown the engine, when the engine start again , the 
> engine can not get the request info again , specially the http keep alive 
> message.
> Current I can't reproduce this bug by adding the unit test which simply calls 
> start and shutdown method the JettyHTTPServerEngine.
> It may take some time to resolve this issue. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to