You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Philippe Larouche (JIRA)" <ji...@apache.org> on 2014/08/13 16:13:15 UTC
[jira] [Comment Edited] (CXF-5795) Reading the entity from a
Response with 202 - Accepted causes NullPointerException
[ https://issues.apache.org/jira/browse/CXF-5795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14095477#comment-14095477 ]
Philippe Larouche edited comment on CXF-5795 at 8/13/14 2:13 PM:
-----------------------------------------------------------------
Hi Sergey,
I confirm I can read the data with the HttpURLConnection. Here is how I called the WS, please note that I'm using a post call (I think it's not working neither when using get):
ObjectMapper mapper = new ObjectMapper();
String jsonLot = mapper.writeValueAsString(lot);
// Connect to google.com
URL url = new URL("http://localhost:9000/api/encaissement/1.0/creerlot");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Content-Length", String.valueOf(jsonLot.length()));
// Write data
OutputStream os = connection.getOutputStream();
os.write(jsonLot.getBytes());
// Read response
StringBuilder responseSB = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ( (line = br.readLine()) != null)
responseSB.append(line);
// Close streams
br.close();
os.close();
At the end, responseSB contains the expected json string.
was (Author: plarouche):
Hi Sergey,
I confirm I can read the data with the HttpURLConnection. Here is how I called the WS, please note that I'm using a post call (I think it's working when using get):
ObjectMapper mapper = new ObjectMapper();
String jsonLot = mapper.writeValueAsString(lot);
// Connect to google.com
URL url = new URL("http://localhost:9000/api/encaissement/1.0/creerlot");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Content-Length", String.valueOf(jsonLot.length()));
// Write data
OutputStream os = connection.getOutputStream();
os.write(jsonLot.getBytes());
// Read response
StringBuilder responseSB = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ( (line = br.readLine()) != null)
responseSB.append(line);
// Close streams
br.close();
os.close();
At the end, responseSB contains the expected json string.
> Reading the entity from a Response with 202 - Accepted causes NullPointerException
> ----------------------------------------------------------------------------------
>
> Key: CXF-5795
> URL: https://issues.apache.org/jira/browse/CXF-5795
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 2.7.11
> Environment: Apache CXF 2.7.11
> Reporter: Daniel Peder Dahlsveen
> Assignee: Sergey Beryozkin
> Fix For: 2.7.12, 3.0.1
>
>
> The entity of a Response with HTTP status code 202 - Accepted is null. This causes a NullPointerException when calling response.readEntity(). Furthermore, this bug seems to only occur when using the JAXRSClientFactory, and it was introduced in CXF 2.7.11.
> The stacktrace is of the NullPointerException:
> java.lang.NullPointerException
> at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:345)
> at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:286)
> at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:276)
> To recreate the bug do the following:
> Create a REST service that returns a 202 - Accepted with a non-null entity. In our case, the service was for HTTP POST.
> Create a unit test that tests the service by creating a client with the JAXRSClientFactory and then reads the entity from the response.
> Both return Response.accepted(entity).build(); and return Response.status(Response.Status.ACCEPTED).entity(entity).build(); causes the bug.
--
This message was sent by Atlassian JIRA
(v6.2#6252)