[ 
https://issues.apache.org/jira/browse/FELIX-4282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13818257#comment-13818257
 ] 

Wolfgang Glas commented on FELIX-4282:
--------------------------------------

OK, I think, I've found the smoking gun. I unpacked both, 
org.apache.felix.http.bundle-2.2.1.jar and 
org.apache.felix.http.jetty-2.2.1.jar and discovered,that the 
QuotedStringTokenizer classes differ in both bundles.

So, this seems to be a packaging problem of org.apache.felix.http.bundle. In my 
case, I really had the problem with org.apache.felix.http.bundle and not with 
org.apache.felix.http.jetty.

***************** felix.http.jetty ******************
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.jetty-2.2.1/org/eclipse/jetty/util$
 javap QuotedStringTokenizer.class 
Compiled from "QuotedStringTokenizer.java"
public class org.eclipse.jetty.util.QuotedStringTokenizer extends 
java.util.StringTokenizer {
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String, boolean, boolean);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String, boolean);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String);
  public boolean hasMoreTokens();
  public java.lang.String nextToken() throws java.util.NoSuchElementException;
  public java.lang.String nextToken(java.lang.String) throws 
java.util.NoSuchElementException;
  public boolean hasMoreElements();
  public java.lang.Object nextElement() throws java.util.NoSuchElementException;
  public int countTokens();
  public static java.lang.String quoteIfNeeded(java.lang.String, 
java.lang.String);
  public static java.lang.String quote(java.lang.String);
  public static void quote(java.lang.Appendable, java.lang.String);
  public static boolean quoteIfNeeded(java.lang.Appendable, java.lang.String, 
java.lang.String);
  public static java.lang.String unquoteOnly(java.lang.String);
  public static java.lang.String unquoteOnly(java.lang.String, boolean);
  public static java.lang.String unquote(java.lang.String);
  public static java.lang.String unquote(java.lang.String, boolean);
  public boolean getDouble();
  public void setDouble(boolean);
  public boolean getSingle();
  public void setSingle(boolean);
  static {};
}
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.jetty-2.2.1/org/eclipse/jetty/util$
 md5sum QuotedStringTokenizer.class 
1e73fc8a419d8ad696a9710f61bf788a  QuotedStringTokenizer.class
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.jetty-2.2.1/org/eclipse/jetty/util$
 
***************** end of felix.http.jetty ******************

***************** felix.http.bundle ******************
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.bundle-2.2.1/org/eclipse/jetty/util$
 javap QuotedStringTokenizer.class 
Compiled from "QuotedStringTokenizer.java"
public class org.eclipse.jetty.util.QuotedStringTokenizer extends 
java.util.StringTokenizer {
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String, boolean, boolean);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String, boolean);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String, 
java.lang.String);
  public org.eclipse.jetty.util.QuotedStringTokenizer(java.lang.String);
  public boolean hasMoreTokens();
  public java.lang.String nextToken() throws java.util.NoSuchElementException;
  public java.lang.String nextToken(java.lang.String) throws 
java.util.NoSuchElementException;
  public boolean hasMoreElements();
  public java.lang.Object nextElement() throws java.util.NoSuchElementException;
  public int countTokens();
  public static java.lang.String quoteIfNeeded(java.lang.String, 
java.lang.String);
  public static java.lang.String quote(java.lang.String);
  public static void quote(java.lang.Appendable, java.lang.String);
  public static boolean quoteIfNeeded(java.lang.Appendable, java.lang.String, 
java.lang.String);
  public static java.lang.String unquote(java.lang.String);
  public boolean getDouble();
  public void setDouble(boolean);
  public boolean getSingle();
  public void setSingle(boolean);
  static {};
}
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.bundle-2.2.1/org/eclipse/jetty/util$
 md5sum QuotedStringTokenizer.class 
bb539da5cafc8648f1e33a083f3182e5  QuotedStringTokenizer.class
wglas@wheezy-amd64:~/tmp/org.apache.felix.http.bundle-2.2.1/org/eclipse/jetty/util$
 
***************** end of felix.http.bundle ******************


> HTTP Bundle 2.2.1 has and incorrect embedded Jetty instance
> -----------------------------------------------------------
>
>                 Key: FELIX-4282
>                 URL: https://issues.apache.org/jira/browse/FELIX-4282
>             Project: Felix
>          Issue Type: Bug
>          Components: HTTP Service
>            Reporter: Bruce Jackson
>
> I've recently downloaded the latest version of the http bundle 2.2.1 which
> contains the update to Jetty 7. This seems to have a problem, perhaps
> because the Jetty version is a snapshot.
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.util.QuotedStringTokenizer.unquoteOnly(Ljava/lang/String;
> )Ljava/lang/String;
>       at
> org.eclipse.jetty.server.CookieCutter.parseFields(CookieCutter.java:284)
>       at 
> org.eclipse.jetty.server.CookieCutter.getCookies(CookieCutter.java:64)
>       at org.eclipse.jetty.server.Request.getCookies(Request.java:499)
>       at
> org.eclipse.jetty.server.session.SessionHandler.checkRequestedSessionId(Ses
> sionHandler.java:260)
>       at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java
> :155)
>       at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java
> :978)
>       at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:13
> 5)
>       at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHan
> dlerCollection.java:255)
>       at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:
> 116)
>       at org.eclipse.jetty.server.Server.handle(Server.java:369)
>       at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpC
> onnection.java:486)
>       at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttp
> Connection.java:933)
>       at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComple
> te(AbstractHttpConnection.java:995)
>       at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630)
>       at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
>       at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.jav
> a:82)
>       at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint
> .java:606)
>       at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.
> java:46)
>       at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java
> :603)
>       at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:
> 538)
>       at java.lang.Thread.run(Thread.java:724)
> If I build the bundle manually with the 7.4.16 Jetty-all, I don't see this
> problem.
> I'm using the released HTTP Bundle from the felix download site. If I
> manually remove the classes from the exploded jar and replace them with
> the contents of the latest release Jetty all build (which is
> jetty-all-server-7.6.13.v20130916) then I no longer see this problem.
> I suspect that the reason that we see this is that we are using Jetty 7
> continuations (looking at the stack trace, this seems to be an async
> operation) and so if you're not using them, you may never have encountered
> this problem.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to