Does this patch fix it?

Index: Connector.java
===================================================================
--- Connector.java    (revision 2339)
+++ Connector.java    (working copy)
@@ -44,7 +44,7 @@
  */
 public abstract class Connector extends Restlet {
     /** The list of protocols simultaneously supported. */
-    private volatile List<Protocol> protocols;
+    private final List<Protocol> protocols;

     /**
      * Constructor.
@@ -66,7 +66,11 @@
      */
     public Connector(Context context, List<Protocol> protocols) {
         super(context);
-        this.protocols = new CopyOnWriteArrayList<Protocol>(protocols);
+        if (protocols == null) {
+            this.protocols = new CopyOnWriteArrayList<Protocol>();
+        } else {
+            this.protocols = new CopyOnWriteArrayList<Protocol>(protocols);
+        }
     }

     /**
@@ -85,7 +89,10 @@
      *                The protocols simultaneously supported.
      */
     public void setProtocols(List<Protocol> protocols) {
-        this.protocols = protocols;
+        this.protocols.clear();
+        if (protocols != null) {
+            this.protocols.addAll(protocols);
+        }
     }

 }


--tim

On Dec 28, 2007 4:20 PM, Rob Heittman <[EMAIL PROTECTED]> wrote:

> @Connector.java:69
> >        this.protocols = new CopyOnWriteArrayList<Protocol>(protocols);
> <        this.protocols = protocols;
>
> This causes ServerServlet to blow up on init when it passes down a null:
>
> java.lang.NullPointerException
>       
> java.util.concurrent.CopyOnWriteArrayList.<init>(CopyOnWriteArrayList.java:91)
>       org.restlet.Connector.<init>(Connector.java:69)
>       org.restlet.Client.<init>(Client.java:49)
>       
> com.noelios.restlet.ext.servlet.ServletWarClient.<init>(ServletWarClient.java:52)
>       
> com.noelios.restlet.ext.servlet.ServerServlet.createApplication(ServerServlet.java:215)
>       com.noelios.restlet.ext.servlet.ServerServlet.getApplication
> (ServerServlet.java:313)
>       
> com.noelios.restlet.ext.servlet.ServerServlet.init(ServerServlet.java:418)
>       javax.servlet.GenericServlet.init(GenericServlet.java:211)
>       com.solertium.planningdatabase.gwt.server.RestletServlet.init
> (RestletServlet.java:40)
>       
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
>       org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>       org.apache.coyote.http11.Http11Processor.process
> (Http11Processor.java:799)
>       
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>       
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
>       
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>       java.lang.Thread.run(Thread.java:619)
>
> I don't know what the correct fix is.
>
> Tim and Jerome, help!
>
> - R
>
>

Reply via email to