geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Mulder (JIRA)" <...@geronimo.apache.org>
Subject [jira] Created: (GERONIMO-728) Jetty gives misleading NPE on "port in use" condition
Date Fri, 08 Jul 2005 15:56:09 GMT
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  
    Versions: 1.0-M3    
    Reporter: Aaron Mulder


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


Mime
View raw message