felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wolfgang Glas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-4282) HTTP Bundle 2.2.1 has and incorrect embedded Jetty instance
Date Sat, 09 Nov 2013 20:04:17 GMT

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

Mime
View raw message