[ 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
