That line of code will only trigger if the "Sec-WebSocket-Extensions" header is present. The Sec-WebSocket-Extensions header is optional, so lack of it isn't going to trigger that bug.
This has been filed as a bug at https://bugs.eclipse.org/bugs/show_bug.cgi?id=367500 Can you provide some details of the client/browser you are using? Also, have you tried the more recent jetty-websocket impls? Try jetty "8.1.0.RC2" please. -- Joakim Erdfelt [email protected] http://webtide.com | http://intalio.com (the people behind jetty and cometd) On Fri, Dec 23, 2011 at 12:49 AM, Seonhong Ahn <[email protected]>wrote: > > I found an available reason.. > > > 1. The handshake from client of Proposed Standard version of WebSocket. > > GET /chat HTTP/1.1 > Host: server.example.com > Upgrade: websocket > Connection: Upgrade > Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== > Origin: http://example.com > Sec-WebSocket-Protocol: chat, superchat > Sec-WebSocket-Version: 13 > > > I guess, chrome will send a message to server with this format. > > Error occurred at 201 line in upgrade method in WebSocketFactory class > in jetty 8.0.4 > > 200 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#200> > *for* (Enumeration > e=request.getHeaders("Sec-WebSocket-Extensions");e.hasMoreElements();)201 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#201> > {202 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#202> > QuotedStringTokenizer > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/util/QuotedStringTokenizer.html> > tok = *new* QuotedStringTokenizer > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/util/QuotedStringTokenizer.html>((String)e.nextElement(),",");203 > > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#203> > *while* (tok.hasMoreTokens())204 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#204> > extensions_requested.add(tok.nextToken());205 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#205> > }206 > <http://download.eclipse.org/jetty/stable-8/xref/org/eclipse/jetty/websocket/WebSocketFactory.html#206> > > > > Handshake from client has no "Sec-WebSocket-Extensions" header.. > > > This is the reason of NullPointerException I think.... > > > Is that right...? > > > On Fri, Dec 23, 2011 at 4:24 PM, Seonhong Ahn <[email protected]>wrote: > >> >> Hi all ^^ >> >> I develop a websocket application with jetty 8.0.4.. >> >> I have a problem like this.. >> >> >> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- >> >> [INFO] Scanning for projects... >> [WARNING] The POM for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 is >> missing, no dependency information available >> [WARNING] Failed to retrieve plugin descriptor for >> org.mortbay.jetty:maven-jetty-plugin:8.0.4: Plugin >> org.mortbay.jetty:maven-jetty-plugin:8.0.4 or one of its dependencies could >> not be resolved: Failed to read artifact descriptor for >> org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 >> [INFO] >> >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] Building jetty8 Maven Webapp 0.0.1-SNAPSHOT >> [INFO] >> ------------------------------------------------------------------------ >> [WARNING] The POM for org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 is >> missing, no dependency information available >> [WARNING] Failed to retrieve plugin descriptor for >> org.mortbay.jetty:maven-jetty-plugin:8.0.4: Plugin >> org.mortbay.jetty:maven-jetty-plugin:8.0.4 or one of its dependencies could >> not be resolved: Failed to read artifact descriptor for >> org.mortbay.jetty:maven-jetty-plugin:jar:8.0.4 >> [INFO] >> [INFO] >>> jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 >>> >> [INFO] >> [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ >> jetty8 --- >> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered >> resources, i.e. build is platform dependent! >> [INFO] Copying 0 resource >> [INFO] >> [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ jetty8 >> --- >> [INFO] Nothing to compile - all classes are up to date >> [INFO] >> [INFO] --- maven-resources-plugin:2.4.3:testResources >> (default-testResources) @ jetty8 --- >> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered >> resources, i.e. build is platform dependent! >> [INFO] Copying 0 resource >> [INFO] >> [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) >> @ jetty8 --- >> [INFO] Nothing to compile - all classes are up to date >> [INFO] >> [INFO] <<< jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 <<< >> [INFO] >> [INFO] --- jetty-maven-plugin:8.1.0.RC1:run (default-cli) @ jetty8 --- >> [INFO] Configuring Jetty for project: jetty8 Maven Webapp >> [INFO] webAppSourceDirectory >> E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp does not >> exist. Defaulting to >> E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp >> [INFO] Reload Mechanic: automatic >> [INFO] Classes = >> E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\target\classes >> 2011-12-23 15:39:42.578:INFO:oejs.Server:jetty-8.1.0.RC1 >> [INFO] Context path = / >> [INFO] Tmp directory = >> E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\target\tmp >> [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml >> [INFO] Web overrides = none >> [INFO] web.xml file = >> file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/WEB-INF/web.xml >> [INFO] Webapp directory = >> E:\eGovFrameDev-2.0.0-FullVer\workspace\jetty8\src\main\webapp >> 2011-12-23 15:39:43.244:INFO:oejpw.PlusConfiguration:No Transaction >> manager found - if your webapp requires one, please configure one. >> 2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started >> o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/PocWebSocketServletContextListener >> has received a servlet context event. >> >> 2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started >> o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/ >> 2011-12-23 15:39:45.531:INFO:oejsh.ContextHandler:started >> o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/ >> PocWebSocketHandler is created. >> 2011-12-23 15:39:45.558:INFO:oejs.Server:jetty-8.1.0.RC1 >> 2011-12-23 15:39:45.591:INFO:oejs.AbstractConnector:Started >> [email protected]:8081 STARTING >> 2011-12-23 15:39:45.616:INFO:oejsh.ContextHandler:started >> o.m.j.p.JettyWebAppContext{/,file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/},file:/E:/eGovFrameDev-2.0.0-FullVer/workspace/jetty8/src/main/webapp/ >> 2011-12-23 15:39:45.653:INFO:oejs.AbstractConnector:Started >> [email protected]:8080 STARTING >> [INFO] Started Jetty Server >> PocWebSocket is created. >> 2011-12-23 15:40:49.537:WARN:oejs.HttpConnection:/ >> java.lang.NullPointerException >> at >> org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:201) >> at >> org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:326) >> at >> org.eclipse.jetty.websocket.WebSocketHandler.handle(WebSocketHandler.java:38) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >> at org.eclipse.jetty.server.Server.handle(Server.java:346) >> at >> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442) >> at >> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924) >> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) >> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) >> at >> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) >> at >> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) >> at >> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) >> at java.lang.Thread.run(Thread.java:662) >> >> >> >> >> ------------------------------------------------------------------------------------------------------------------------------------------- >> >> I made a WebSocketServletContextListener implementing >> ServletContextListener. >> >> And in this class, I started a jetty server which had a WebSocketHandler >> set DefaultHandler. >> >> I register this class as a listener in web.xml. >> >> Client ia a chrome 16.0.912.63 m. >> >> >> On client, >> >> var location = "ws://localhost:8081"; >> this._ws = new WebSocket(location); >> >> >> >> Is this problem why client and server's websocket version is different ? >> >> I don't know what jetty's websocket version is. >> >> As I know chrome v.16 supports Hybi17.. >> >> I don't know what I would do....-.-;; >> >> >> I wish you have an answer or hint.. >> >> >> Thank you all for reading.. >> >> and thank you so much for your answer in advance.. >> >> >> Happy Christmas ~ ^_____^ >> >> >> >> >> -- >> >> >> ---------------------------------------------------------------------------------- >> *Seonhong Ahn * >> Director of Research and Development >> >> *Collabra Co.* >> 960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 >> Tel. 82-70-8670-6929 Fax. 82-2-6280-4807 >> *Mobile 82-10-8292-3923* >> E-mail [email protected] / [email protected] >> www.collabra.co.kr >> >> ---------------------------------------------------------------------------------- >> >> >> > > > -- > > > ---------------------------------------------------------------------------------- > *Seonhong Ahn* > Director of Research and Development > > *Collabra Co.* > 960-6 Deachi-dong, Gangnam-gu, Seoul, Korea 135-280 > Tel. 82-70-8670-6929 Fax. 82-2-6280-4807 > *Mobile 82-10-8292-3923* > E-mail [email protected] / [email protected] > www.collabra.co.kr > > ---------------------------------------------------------------------------------- > > > _______________________________________________ > jetty-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/jetty-users > >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
