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