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

Hoss Man resolved SOLR-533.
---------------------------

       Resolution: Fixed
    Fix Version/s: 1.3
         Assignee: Hoss Man

I couldn't find any reason not to commit both of these patches.

Committed revision 647048.


> make tests using JettySolrRunner more resilient to "BindException: Address 
> already in use"
> ------------------------------------------------------------------------------------------
>
>                 Key: SOLR-533
>                 URL: https://issues.apache.org/jira/browse/SOLR-533
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Hoss Man
>            Assignee: Hoss Man
>             Fix For: 1.3
>
>         Attachments: SOLR-533--distrib.patch, SOLR-533.patch
>
>
> Something to look into....
> tests that use JettySolrRunner frequently fail with stack traces like this...
> {code}
> java.net.BindException: Address already in use
>       at java.net.PlainSocketImpl.socketBind(Native Method)
>       at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
>       at java.net.ServerSocket.bind(ServerSocket.java:319)
>       at java.net.ServerSocket.<init>(ServerSocket.java:185)
>       at java.net.ServerSocket.<init>(ServerSocket.java:141)
>       at 
> org.mortbay.jetty.bio.SocketConnector.newServerSocket(SocketConnector.java:78)
>       at org.mortbay.jetty.bio.SocketConnector.open(SocketConnector.java:72)
>       at 
> org.mortbay.jetty.AbstractConnector.doStart(AbstractConnector.java:252)
>       at 
> org.mortbay.jetty.bio.SocketConnector.doStart(SocketConnector.java:145)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>       at org.mortbay.jetty.Server.doStart(Server.java:221)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
>       at 
> org.apache.solr.client.solrj.embedded.JettySolrRunner.start(JettySolrRunner.java:89)
> {code}
> ...because they have a hardcoded port number in them.  it occurred to me 
> tonight that java.net.ServerSocket will pick a port for you automaticly if 
> you specify a port of "0", the real port can then be accessed by 
> getLocalPort().
> we should see if passing 0 to Jetty's "Server" class works, and if in doing 
> so we can then add a method to JettySolrRunner to introspect the actual port 
> after starting the server (from the Jetty javadocs this seems possible by 
> calling jettyServer.getConnectors()[0].getLocalPort() ... with some error 
> checking of course).
> then we could change all the relevant tests so that instead of a hardcoded 
> port number, setUp assigns a value to port *after* the Jetty Server is 
> started.

-- 
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