#1889 ✓resolved
Chris Webb

WS call does not work in play-1.3.0RC2-12-g87e2d3c

Reported by Chris Webb | November 18th, 2014 @ 11:30 AM | in 1.3 (closed)

I have the following WS call in my application which works on play-1.3.0RC1-58-gf7d6d6 but does not on play-1.3.0RC2-12-g87e2d3c both on top of Oracle JDK 1.8.0_05-b13

MailChimpSubscribe subscribe = new MailChimpSubscribe(...);
WS.url("https://" + datacenterPrefix + ".api.mailchimp.com/2.0/lists/subscribe.json")
    .body(new Gson().toJson(subscribe))
    .mimeType("application/json")
    .setHeader("Accept", "application/json")
    .postAsync()
    .onRedeem(new Action<F.Promise<HttpResponse>>() {
        @Override
        public void invoke(Promise<HttpResponse> result) {
            ...
        }
    });

When I turn on the logging for the AsyncHttpClient I noticed that chunking has been enabled on play-1.3.0RC1-58-gf7d6d6, see below:

play-1.3.0RC1-58-gf7d6d6 request (using AsyncHttpClient v1.8.9):

Request DefaultHttpRequest(chunked: false)
POST /2.0/lists/subscribe.json HTTP/1.1
Host: us5.api.mailchimp.com
Accept: application/json
Content-Type: application/json
Connection: keep-alive
User-Agent: NING/1.0
Content-Length: 174

play-1.3.0RC2-12-g87e2d3c request (using AsyncHttpClient v1.8.13):

Request DefaultHttpRequest(chunked: true)
POST /2.0/lists/subscribe.json HTTP/1.1
Host: us5.api.mailchimp.com
Accept: application/json
Content-Type: application/json
Connection: keep-alive
User-Agent: NING/1.0
Transfer-Encoding: chunked

I'm not 100% sure that the chunked transfer encoding is causing the problem but that's the only thing that I can see that has changed. There has been no change to WAAsync in that time so I'm assuming it's a change to the underlying AsyncHttpClient, which was updated on 4/9/14 from v1.8.9 to v1.8.13. I rolled back AsyncHttpClient to v1.8.9 and indeed the web service call worked. I then rolled forward until it broke which was v1.8.12. So it looks like v1.8.11 has the same functionality as 1.8.9. I had a quick look at the AsyncHttpClient commits between 1.8.11 (released 17/6) and 1.8.12 (released 1/7) but couldn't see anything that would affect the chunked enabled status.

Has there been an API change in AsyncHttpClient?

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2>Play framework</h2>

Play makes it easier to build Web applications with Java. It is a clean alternative to bloated Enterprise Java stacks. It focuses on developer productivity and targets RESTful architectures. Learn more on the <a href="http://www.playframework.org">http://www.playframework.org</a> website.<br><br>

<h2>Source code is hosted on github</h2>Check out our repository at <a href="http://github.com/playframework/play">http://github.com/playframework/play</a><br><br>

<h2>Contributing, creating a patch</h2> Please read the <a href="http://play.lighthouseapp.com/projects/57987/contributor-guide">contributor guide</a><br><br>

<h2>Reporting Security Vulnerabilities</h2> Since all bug reports are public, please report any security vulnerability directly to <em>guillaume dot bort at gmail dot com</em>.<br><br>

<h2>Creating a bug report</h2> Bug reports are incredibly helpful, so take time to report bugs and request features in our ticket tracker. We’re always grateful for patches to Play’s code. Indeed, bug reports with attached patches will get fixed far quickly than those without any.<br><br>

Please include as much relevant information as possible including the exact framework version you're using and a code snippet that reproduces the problem.<br><br>

Don't have too much expectations. Unless the bug is really a serious "everything is broken" thing, you're creating a ticket to start a discussion. Having a patch (or a branch on Github we can pull from) is better, but then again we'll only pull high quality branches that make sense to be in the core of Play.

Pages