Jetty

Follow on to issue, JETTY-399, Craig Day version of OpenRemoteServiceServlet and AsyncRemoteServiceServlet may need an update

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 6.1.6
  • Fix Version/s: 6.2.0pre0
  • Component/s: Continuations
  • Labels:
    None
  • Environment:
    Windows XP
  • Number of attachments :
    2

Description

From the original JETTY-399 issue raised by Craig Day ...
------------------
The OpenRemoteServiceServlet provided doesn't work with GWT 1.4. They seem to have changed RemoteServiceServlet significantly in this release, and although RemoteServiceServlet has been "opened up" more I couldn't get around not creating a 1.4 compatible version of OpenRemoteServiceServlet. Let me know if you want me to submit the code,.. largely trivial

Craig
------------------

GWT 1.4.60 in the deployed mode (i.e. war with a trivial Chat Room app deployed to Jetty webapps. IDE: Eclipse with WTP adapter for Jetty)

The GWT chat room app works as expected in the hosted mode since the Continuation instance being used is of type WaitingContinuation. When the app is deployed to the Jetty webapps directory and loaded in the browser, the Continuation instance created is of type RetryContinuation.
On calling "suspend" on the Continuation instance, the Throwable instance thrown is of type org.mortbay.jetty.RetryRequest. However, by the time the Throwable instance reaches the AsyncRemoteServiceServlet.doUnexpectedFailure method, its been replaced (by the GWT RPC class) by a SerializationException.

The detailedMessage in the exception reads
"Type 'org.mortbay.jetty.RetryRequest' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be serialized."

The protected method, "throwIfRetyRequest" in AsyncRemoteServiceServlet (Craig Day implementation) then fails to rethrow the original RetryRequest exception. As a result, the servlet container doesn't get the RetryRequest exception and the call to suspend fails.

Suggest modifying the implementation of the "throwIfRetyRequest" method to the following (unless there's a better way):
public class AsyncRemoteServiceServlet extends OpenRemoteServiceServlet
{
.....
private static final String JETTY_GWT_SERIALIZATION_EXCEPTION_MESSAGE = "Type 'org.mortbay.jetty.RetryRequest' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable'";
....
protected void throwIfRetyRequest(Throwable caught)
{
if (caught instanceof UnexpectedException)

{ caught = caught.getCause(); }

String detailMessage = caught.getMessage();
if (caught instanceof SerializationException
&& detailMessage.startsWith(JETTY_GWT_SERIALIZATION_EXCEPTION_MESSAGE))
{
try

{ Class excep = Class.forName(JETTY_RETRY_REQUEST_EXCEPTION); caught = (Throwable) excep.newInstance(); }

catch (ClassNotFoundException ex)
{ ex.printStackTrace(); }
catch (InstantiationException ex)
{ ex.printStackTrace(); } }
catch (IllegalAccessException ex)

{ ex.printStackTrace(); }

throw (RuntimeException) caught;
}
if (caught instanceof RuntimeException
&& JETTY_RETRY_REQUEST_EXCEPTION.equals(caught.getClass()
.getName()))

{ throw (RuntimeException) caught; }

}
....
}

Issue Links

Activity

Hide
Greg Wilkins added a comment -

Jan, as our new GWT expert (, can you put this update on your list of todos.

I'll help out with it - so ping me when you have a few hours spare to work on this.

Show
Greg Wilkins added a comment - Jan, as our new GWT expert (, can you put this update on your list of todos. I'll help out with it - so ping me when you have a few hours spare to work on this.
Hide
Greg Wilkins added a comment -

Note that with jetty trunk (6.2-SNAPSHOT), continuations now extend ThreadDeath, so there may be little or no work needed with GWT (although finally blocks could still be an issue).

Anyway, worth trying out if you are in a hurry.

cheers

Show
Greg Wilkins added a comment - Note that with jetty trunk (6.2-SNAPSHOT), continuations now extend ThreadDeath, so there may be little or no work needed with GWT (although finally blocks could still be an issue). Anyway, worth trying out if you are in a hurry. cheers
Hide
Jan Bartel added a comment -

Zac,

I've commited Craigs changes to jetty trunk, see svn rev 2318.

I haven't incorporated your suggested change yet, as I am not sure that the SerializationException will still be thrown now that Retry is a subclass of ThreadDeath. I looked at the gwt 1.4.60 code and couldn't see where it could generate the SerializationException, so I'd be grateful if you could try with the new code and let me know if that exception still occurs (any linenumbers etc would also be helpful).

cheers
Jan

Show
Jan Bartel added a comment - Zac, I've commited Craigs changes to jetty trunk, see svn rev 2318. I haven't incorporated your suggested change yet, as I am not sure that the SerializationException will still be thrown now that Retry is a subclass of ThreadDeath. I looked at the gwt 1.4.60 code and couldn't see where it could generate the SerializationException, so I'd be grateful if you could try with the new code and let me know if that exception still occurs (any linenumbers etc would also be helpful). cheers Jan
Hide
Jan Bartel added a comment -

Mail from zac:

Hi Jan,
The build succeeded this time (with the command you provided). I had to download the (optional) cvs executable too.
However, there's some confusion on what to use at this point:

1) The original OpenRemoteServiceServlet, AsyncRemoteServiceServlet classes (before Craig Day corrected it).
This is the version referenced in the jetty documentation links for GWT. This probably still won't work - since it was never updated for GWT 1.4.x

2) The corrected OpenRemoteServiceServlet, AsyncRemoteServiceServlet classes (after Craig Day provided changes)

3) My version of these classes (additional corrections to Craig's clases).
I did try this - it didn't work - I now get a retry exception.
2008-02-11 13:54:13.458:/ChatRoom:WARN: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String gwtapp.stockfeed.client.StockFeedService.getQuote(java.lang.String,java.lang.String) throws java.lang.Exception' threw an unexpected exception: org.mortbay.jetty.RetryRequest
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:547)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:478)Begin suspending for stock feed id=1; symbol = IBM

at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.processCall(OpenRemoteServiceServlet.java:249)
at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.doPost(OpenRemoteServiceServlet.java:191)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:728)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:113)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:518)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:849)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:393)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:397)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: org.mortbay.jetty.RetryRequest
at org.mortbay.jetty.nio.SelectChannelConnector$SuspendableEndPoint.suspend(SelectChannelConnector.java:516)
at common.fw.channel.MessageChannel.suspendForMessages(MessageChannel.java:91)
at gwtapp.stockfeed.server.StockFeedServiceImpl.getQuote(StockFeedServiceImpl.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:528)
... 22 more
2008-02-11 15:02:06.210:/ChatRoom:WARN: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String gwtapp.stockfeed.client.StockFeedService.getQuote(java.lang.String,java.lang.String) throws java.lang.Exception' threw an unexpected exception: org.mortbay.jetty.RetryRequest
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:547)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:478)Begin suspending for stock feed id=2; symbol = IBM

at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.processCall(OpenRemoteServiceServlet.java:249)
at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.doPost(OpenRemoteServiceServlet.java:191)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:728)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:113)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:518)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:849)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:393)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:397)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: org.mortbay.jetty.RetryRequest
at org.mortbay.jetty.nio.SelectChannelConnector$SuspendableEndPoint.suspend(SelectChannelConnector.java:516)
at common.fw.channel.MessageChannel.suspendForMessages(MessageChannel.java:91)
at gwtapp.stockfeed.server.StockFeedServiceImpl.getQuote(StockFeedServiceImpl.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:528)
... 22 more

4) None of the above - i.e. use GWT's RemoteServiceServlet directly.

Please advice

Thanks
Zac

Show
Jan Bartel added a comment - Mail from zac: Hi Jan, The build succeeded this time (with the command you provided). I had to download the (optional) cvs executable too. However, there's some confusion on what to use at this point: 1) The original OpenRemoteServiceServlet, AsyncRemoteServiceServlet classes (before Craig Day corrected it). This is the version referenced in the jetty documentation links for GWT. This probably still won't work - since it was never updated for GWT 1.4.x 2) The corrected OpenRemoteServiceServlet, AsyncRemoteServiceServlet classes (after Craig Day provided changes) 3) My version of these classes (additional corrections to Craig's clases). I did try this - it didn't work - I now get a retry exception. 2008-02-11 13:54:13.458:/ChatRoom:WARN: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String gwtapp.stockfeed.client.StockFeedService.getQuote(java.lang.String,java.lang.String) throws java.lang.Exception' threw an unexpected exception: org.mortbay.jetty.RetryRequest at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:547) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:478)Begin suspending for stock feed id=1; symbol = IBM at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.processCall(OpenRemoteServiceServlet.java:249) at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.doPost(OpenRemoteServiceServlet.java:191) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:728) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:113) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:518) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:849) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:393) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:397) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) Caused by: org.mortbay.jetty.RetryRequest at org.mortbay.jetty.nio.SelectChannelConnector$SuspendableEndPoint.suspend(SelectChannelConnector.java:516) at common.fw.channel.MessageChannel.suspendForMessages(MessageChannel.java:91) at gwtapp.stockfeed.server.StockFeedServiceImpl.getQuote(StockFeedServiceImpl.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:528) ... 22 more 2008-02-11 15:02:06.210:/ChatRoom:WARN: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String gwtapp.stockfeed.client.StockFeedService.getQuote(java.lang.String,java.lang.String) throws java.lang.Exception' threw an unexpected exception: org.mortbay.jetty.RetryRequest at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:361) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:547) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:478)Begin suspending for stock feed id=2; symbol = IBM at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.processCall(OpenRemoteServiceServlet.java:249) at org.mortbay.jetty.gwt.OpenRemoteServiceServlet.doPost(OpenRemoteServiceServlet.java:191) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:728) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:113) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:518) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:849) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:393) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:397) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) Caused by: org.mortbay.jetty.RetryRequest at org.mortbay.jetty.nio.SelectChannelConnector$SuspendableEndPoint.suspend(SelectChannelConnector.java:516) at common.fw.channel.MessageChannel.suspendForMessages(MessageChannel.java:91) at gwtapp.stockfeed.server.StockFeedServiceImpl.getQuote(StockFeedServiceImpl.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:528) ... 22 more 4) None of the above - i.e. use GWT's RemoteServiceServlet directly. Please advice Thanks Zac
Hide
Jan Bartel added a comment -

Zac,

I checked in Craig's changes (and slightly modified them) NOT as new classes, but replaced the old classes. So, you should still be able to follow the documentation on the jetty wiki page. Can you build the jetty-gwt module and try your application with it? BTW, the line numbers from the exception trace don't match the line numbers in the code checked in to jetty head, so I guess you didn't run it with jetty head code, but ran it with your modified code instead?

cheers
Jan

Show
Jan Bartel added a comment - Zac, I checked in Craig's changes (and slightly modified them) NOT as new classes, but replaced the old classes. So, you should still be able to follow the documentation on the jetty wiki page. Can you build the jetty-gwt module and try your application with it? BTW, the line numbers from the exception trace don't match the line numbers in the code checked in to jetty head, so I guess you didn't run it with jetty head code, but ran it with your modified code instead? cheers Jan
Hide
Jan Bartel added a comment -

Actually, if you wanted to attach a test application, that might be useful.
cheers
Jan

Show
Jan Bartel added a comment - Actually, if you wanted to attach a test application, that might be useful. cheers Jan
Hide
Jan Bartel added a comment -

Received from Zac in email:

Hi Jan,
Finally got around to testing this again.

I reverted back to the older Jetty 6.1.6 build (the GA release). I used the attached versions of the files.
Note that the Wiki page still doesn't have right versions of the files for GWT 1.4.

The attached OpenRemoteServiceServlet is Craig Day's version. This attached version is NOT the same as the one on the Wiki site.
You need this attached version so you can code against GWT 1.4.

The Attached AsyncRemoteServiceServlet is the new version (the one you updated on the Wiki site, the one that has
the modified "throwIfRetryRequest", i.e., the one that now checks for ThreadDeath).

Finally, the attached "RequestContext" class is a simple wrapper class around HttpServletRequest and the API to
get Continuation instances. This one is not required - just a bit more cleaner.

Using the attached versions of the files and version 6.1.6 (GA) of Jetty. I was able to get my test application to work.
Here's a sample of the code in the GWT service side implementation:

import org.mortbay.jetty.gwt.AsyncRemoteServiceServlet;
import org.mortbay.jetty.gwt.RequestContext;
...
public class ChatRoomServiceImpl extends AsyncRemoteServiceServlet implements
ChatRoomService
{
... // use Continuation as desired
}

Thanks for all your help.

Show
Jan Bartel added a comment - Received from Zac in email: Hi Jan, Finally got around to testing this again. I reverted back to the older Jetty 6.1.6 build (the GA release). I used the attached versions of the files. Note that the Wiki page still doesn't have right versions of the files for GWT 1.4. The attached OpenRemoteServiceServlet is Craig Day's version. This attached version is NOT the same as the one on the Wiki site. You need this attached version so you can code against GWT 1.4. The Attached AsyncRemoteServiceServlet is the new version (the one you updated on the Wiki site, the one that has the modified "throwIfRetryRequest", i.e., the one that now checks for ThreadDeath). Finally, the attached "RequestContext" class is a simple wrapper class around HttpServletRequest and the API to get Continuation instances. This one is not required - just a bit more cleaner. Using the attached versions of the files and version 6.1.6 (GA) of Jetty. I was able to get my test application to work. Here's a sample of the code in the GWT service side implementation: import org.mortbay.jetty.gwt.AsyncRemoteServiceServlet; import org.mortbay.jetty.gwt.RequestContext; ... public class ChatRoomServiceImpl extends AsyncRemoteServiceServlet implements ChatRoomService { ... // use Continuation as desired } Thanks for all your help.
Hide
Jan Bartel added a comment -

File from Zac.

Show
Jan Bartel added a comment - File from Zac.
Hide
Jan Bartel added a comment -

File from Zac.

Show
Jan Bartel added a comment - File from Zac.
Hide
Jan Bartel added a comment -

Zac,

thanks for testing. However, I am a bit confused, as I'm not sure we're both testing the same thing.

You must test with the version of jetty that is currently in jetty svn HEAD, as the RetryException has changed
to being based on ThreadDeath, so testing with another version of jetty won't work. Also, you'll need to test with
the code that is checked in to svn head in extras/gwt as it incorporates Craig Day's changes.

I diffed the fiiles you sent (which I attached to this issue, for the record) and they seem different to the ones
that I have checked in?

Could you check out and build jetty head, and then cd to extras/gwt and build that, then run your tests against
that code and let me know how it goes?

Also, any suggestions for changes to the wiki page would be good (when you say the wiki is wrong, do you mean the section on how the RetryException is handled? If so, I haven't updated it yet until I know the impl we have checked in is working.)

cheers
Jan

Show
Jan Bartel added a comment - Zac, thanks for testing. However, I am a bit confused, as I'm not sure we're both testing the same thing. You must test with the version of jetty that is currently in jetty svn HEAD, as the RetryException has changed to being based on ThreadDeath, so testing with another version of jetty won't work. Also, you'll need to test with the code that is checked in to svn head in extras/gwt as it incorporates Craig Day's changes. I diffed the fiiles you sent (which I attached to this issue, for the record) and they seem different to the ones that I have checked in? Could you check out and build jetty head, and then cd to extras/gwt and build that, then run your tests against that code and let me know how it goes? Also, any suggestions for changes to the wiki page would be good (when you say the wiki is wrong, do you mean the section on how the RetryException is handled? If so, I haven't updated it yet until I know the impl we have checked in is working.) cheers Jan
Hide
Jan Bartel added a comment -

I've been able to test a GWT rpc based webapp against jetty trunk. The mods that are currently checked in to extras/gwt work fine and continuation-based rpc is working.
This is scheduled for release with the first 6.2 release.

I will also push some 6.2 snapshots today.

cheers
Jan

Show
Jan Bartel added a comment - I've been able to test a GWT rpc based webapp against jetty trunk. The mods that are currently checked in to extras/gwt work fine and continuation-based rpc is working. This is scheduled for release with the first 6.2 release. I will also push some 6.2 snapshots today. cheers Jan
Hide
Jan Bartel added a comment -

I've also checked in Craig Day's upgrade for gwt-1.4.x and the update to fix the exception into jetty-6.1 branch. Tested and working. Scheduled for release 6.1.9.

cheers
Jan

Show
Jan Bartel added a comment - I've also checked in Craig Day's upgrade for gwt-1.4.x and the update to fix the exception into jetty-6.1 branch. Tested and working. Scheduled for release 6.1.9. cheers Jan

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: