[ 
http://issues.apache.org/jira/browse/GERONIMO-728?page=comments#action_12316086 
] 

John Sisson commented on GERONIMO-728:
--------------------------------------

Created issue on Jetty project 
http://sourceforge.net/tracker/index.php?func=detail&aid=1240821&group_id=7322&atid=107322

> Jetty gives misleading NPE on "port in use" condition
> -----------------------------------------------------
>
>          Key: GERONIMO-728
>          URL: http://issues.apache.org/jira/browse/GERONIMO-728
>      Project: Geronimo
>         Type: Improvement
>   Components: web, dependencies
>     Versions: 1.0-M3, 1.0-M4
>     Reporter: Aaron Mulder
>     Assignee: John Sisson
>      Fix For: 1.0-M4

>
> When Jetty starts up but the port it wants is in use, you get an error like 
> this:
> 19 ERROR [GBeanInstance] Problem in doFail of 
> geronimo.server:J2EEApplication=null,J2EEModule=org/apache/geronimo/Server,J2EEServer=geronimo,j2eeType=GBean,name=JettyWebConnector
> java.lang.NullPointerException
>         at org.mortbay.util.ThreadedServer.stop(ThreadedServer.java:544)
>         at org.mortbay.http.SocketListener.stop(SocketListener.java:211)
>         at 
> org.apache.geronimo.jetty.connector.JettyConnector.doFail(JettyConnector.java:102)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:869)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:328)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:111)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:486)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanSingleReference.attemptFullStart(GBeanSingleReference.java:154)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanSingleReference.targetAdded(GBeanSingleReference.java:127)
>         at 
> org.apache.geronimo.gbean.runtime.AbstractGBeanReference.addTarget(AbstractGBeanReference.java:242)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanSingleReference$1.running(GBeanSingleReference.java:163)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:155)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:38)
>         at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:231)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:352)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:111)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:133)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:503)
>         at 
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:207)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:141)
>         at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:503)
>         at 
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:207)
>         at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:247)
>         at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:81)
>         at org.apache.geronimo.system.main.Daemon.main(Daemon.java:320)
> Only later does the BindException show up, whereas I believe the 
> BindException should be first (and in fact only -- what good does the NPE 
> do?).
> So what I think should happen is that we should trap a BindException, and if 
> it comes up, don't try to stop the SocketListener (or at least don't generate 
> another exception if it doesn't work).  Then print an ERROR message including 
> the port number (ERROR: Jetty unable to bind to port 8080).  Then throw the 
> BindException if the full stack trace would be useful.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to