title: What is this error that I get after upgrading CometD 2.5.0 to 3.0.6.?
body: <p>I developed a CometD client service in Java, that worked fine until I upgraded CometD 2.5.0 to CometD 3.0.6. (jetty-client-7.6.0 to 9.2.1 as well). <br>I had a look at the doc for upgrading, I looked around on Internet and spent time myself. No luck. Hope someone can tell me where I am wrong. <br>
  Here is the exception:</p>
  
  <pre><code>2015-11-04 17:18:24 INFO  ResponseNotifier:197 - Exception while notifying listener org.cometd.client.transport.LongPollingTransport$2@35d92de8
  java.lang.NullPointerException
      at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
      at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
      at org.cometd.common.AbstractClientSession.getReleasableChannel(AbstractClientSession.java:277)
      at org.cometd.common.AbstractClientSession.receive(AbstractClientSession.java:230)
      at org.cometd.client.BayeuxClient.processMessage(BayeuxClient.java:787)
      at org.cometd.client.BayeuxClient$PublishTransportListener.processMessage(BayeuxClient.java:1193)
      at org.cometd.client.BayeuxClient$PublishTransportListener.onMessages(BayeuxClient.java:1185)
      at org.cometd.client.transport.LongPollingTransport$2.onComplete(LongPollingTransport.java:254)
      at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
      at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
      at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:446)
      at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:393)
      at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:265)
      at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1430)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1272)
      at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:156)
      at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:117)
      at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69)
      at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:89)
      at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:108)
      at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
      at java.lang.Thread.run(Thread.java:745)  
  </code></pre>
  
  <p>Please find my Java client code:  </p>
  
  <pre><code>HttpClient httpClient = new HttpClient();
  httpClient.start();
  final String cometdUrl = RestAssured.baseURI + COMETD_PATH;
  ClientTransport transport = new LongPollingTransport(null, httpClient);
  bayeuxClient = new BayeuxClient(cometdUrl, transport);
  bayeuxClient.putCookie(new HttpCookie("JSESSIONID", token));
  bayeuxClient.getChannel(Channel.META_HANDSHAKE).addListener(new ClientSessionChannel.MessageListener() {
  
      @Override
      public void onMessage(ClientSessionChannel channel, Message message) {
          if (message.isSuccessful()) {
              logger.info("Handshake done!");
              for (UVChannel channelValue : UV_CHANNELS) {
                  bayeuxClient.getChannel(channelValue.value()).subscribe(new ClientSessionChannel.MessageListener() {
                      @Override
                      public void onMessage(ClientSessionChannel channel, Message message) {
                          if (message.isSuccessful()) { 
                              try {
                                  BlockingQueue&lt;Message&gt; notificationsPerChannel = notifications.get(uvChannel(message.getChannel()));
                                  notificationsPerChannel.put(message);
                              } catch (InterruptedException e) {
                                  throw new IllegalStateException("It was not possible to store a message in the queue");
                              }
                          } else throw new IllegalStateException("no subscription to channel: " + message);
                      }
                  });
              }
          } else {
              throw new IllegalStateException("Handshake failed! " + cometdUrl);
          }
      }
  });
  bayeuxClient.handshake();
  </code></pre>