Re: internal NPE exception while handling 415 response

2013-02-14 Thread Jerome Louvel
Hi Dan,

We plan to release 2.1.2 early next week. If you can't wait, you indeed
need to build the sources.

We used to have automated 2.2 snapshots built daily, but we haven't
restored the cron scripts on our new machine.

Best regards,
Jerome


2013/2/13 Daniel Halperin dhalp...@cs.washington.edu


 On Sun, Feb 10, 2013 at 9:55 AM, Jérôme Louvel jlou...@restlet.comwrote:

 Hi Daniel,

 Thanks very much for the detailed report.

 I've been able to reproduce the issue, add a test case and fix the
 underlying problem (in both 2.1 and 2.2 branches).


 Thanks, Jérôme! That's great.

 How can I get these changes? (Do I have to rebuild the source? Will there
 be a 2.1.2 release soon?)

 Dan



 Actually, it was a serious issue beyond the JAX-RS extension itself as
 the internal connector wasn't restoring the current Response, Application,
 Context and Virtual Host (thread local variables) when writing the outbound
 entities.

 Thanks,
 Jerome
 --
 http://restlet.com
 http://twitter.com/#!/jlouvel



 2013/1/31 Daniel Halperin dhalp...@cs.washington.edu

 Hi everyone,

 I'm just getting started with RESTlet (v.2.1.1, with
 org.restlet.jee.ext.jackson  jee.ext.jaxrs), so I may be doing something
 very wrong. However, basic things work well for me. For instance, if I
 return POJOs from a function annotated with
 @Produces(MediaType.APPLICATION_JSON), they seem to be returned properly.

 Right now, I'm experimenting with implementing different handlers for
 different Content-Types. I started with the simplest possible: echo JSON
 input (converted to String) back as JSON:

 /**
  * Class that handles queries.
  *
  * @author dhalperi
  */
 @Path(/query)
 public final class QueryResource {
   /**
* For now, simply echoes back its input.
*
* @param input the payload of the POST request itself.
* @return the payload.
*/
   @POST
   @Produces(MediaType.APPLICATION_JSON)
   @Consumes(MediaType.APPLICATION_JSON)
   public String postNewQuery(final String input) {
 return input;
   }
 }

 If I access this resource with an invalid Content-Type (curl -i -XPOST
 localhost:8753/query -d hi), the curl process hangs and it looks like
 RESTlet experiences an internal exception deep in its code:

 Exception in thread Restlet-PipedWritableChannel
 java.lang.NullPointerException
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.getCurrentResponseEntityCharset(StringProvider.java:98)
 at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:178)
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:63)
 at
 org.restlet.ext.jaxrs.internal.wrappers.provider.SingletonProvider.writeTo(SingletonProvider.java:350)
  at
 org.restlet.ext.jaxrs.internal.util.JaxRsOutputRepresentation.write(JaxRsOutputRepresentation.java:112)
 at
 org.restlet.representation.StreamRepresentation.write(StreamRepresentation.java:76)
  at org.restlet.engine.io.NioUtils$1.run(NioUtils.java:210)
 at java.lang.Thread.run(Thread.java:722)

 Google has literally no hits for 'Restlet-PipedWritableChannel'---so I
 came here. :)

 Note that if I use the expected Content-type, it works fine: curl -i
 -XPOST localhost:8753/query -H Content-type: application/json -d hi

 INFO: 2013-01-30 18:15:30 127.0.0.1 - - 8753 POST /query - 200 2 2 10
 http://localhost:8753 curl/7.28.1 -

 What suggestions does the group have for me?

 Thanks!
 Dan





--
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=3048679

Re: internal NPE exception while handling 415 response

2013-02-13 Thread Daniel Halperin
On Sun, Feb 10, 2013 at 9:55 AM, Jérôme Louvel jlou...@restlet.com wrote:

 Hi Daniel,

 Thanks very much for the detailed report.

 I've been able to reproduce the issue, add a test case and fix the
 underlying problem (in both 2.1 and 2.2 branches).


Thanks, Jérôme! That's great.

How can I get these changes? (Do I have to rebuild the source? Will there
be a 2.1.2 release soon?)

Dan



 Actually, it was a serious issue beyond the JAX-RS extension itself as the
 internal connector wasn't restoring the current Response, Application,
 Context and Virtual Host (thread local variables) when writing the outbound
 entities.

 Thanks,
 Jerome
 --
 http://restlet.com
 http://twitter.com/#!/jlouvel



 2013/1/31 Daniel Halperin dhalp...@cs.washington.edu

 Hi everyone,

 I'm just getting started with RESTlet (v.2.1.1, with
 org.restlet.jee.ext.jackson  jee.ext.jaxrs), so I may be doing something
 very wrong. However, basic things work well for me. For instance, if I
 return POJOs from a function annotated with
 @Produces(MediaType.APPLICATION_JSON), they seem to be returned properly.

 Right now, I'm experimenting with implementing different handlers for
 different Content-Types. I started with the simplest possible: echo JSON
 input (converted to String) back as JSON:

 /**
  * Class that handles queries.
  *
  * @author dhalperi
  */
 @Path(/query)
 public final class QueryResource {
   /**
* For now, simply echoes back its input.
*
* @param input the payload of the POST request itself.
* @return the payload.
*/
   @POST
   @Produces(MediaType.APPLICATION_JSON)
   @Consumes(MediaType.APPLICATION_JSON)
   public String postNewQuery(final String input) {
 return input;
   }
 }

 If I access this resource with an invalid Content-Type (curl -i -XPOST
 localhost:8753/query -d hi), the curl process hangs and it looks like
 RESTlet experiences an internal exception deep in its code:

 Exception in thread Restlet-PipedWritableChannel
 java.lang.NullPointerException
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.getCurrentResponseEntityCharset(StringProvider.java:98)
 at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:178)
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:63)
 at
 org.restlet.ext.jaxrs.internal.wrappers.provider.SingletonProvider.writeTo(SingletonProvider.java:350)
  at
 org.restlet.ext.jaxrs.internal.util.JaxRsOutputRepresentation.write(JaxRsOutputRepresentation.java:112)
 at
 org.restlet.representation.StreamRepresentation.write(StreamRepresentation.java:76)
  at org.restlet.engine.io.NioUtils$1.run(NioUtils.java:210)
 at java.lang.Thread.run(Thread.java:722)

 Google has literally no hits for 'Restlet-PipedWritableChannel'---so I
 came here. :)

 Note that if I use the expected Content-type, it works fine: curl -i
 -XPOST localhost:8753/query -H Content-type: application/json -d hi

 INFO: 2013-01-30 18:15:30 127.0.0.1 - - 8753 POST /query - 200 2 2 10
 http://localhost:8753 curl/7.28.1 -

 What suggestions does the group have for me?

 Thanks!
 Dan




--
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=3048597

Re: internal NPE exception while handling 415 response

2013-02-10 Thread Jerome Louvel
Hi Daniel,

Thanks very much for the detailed report.

I've been able to reproduce the issue, add a test case and fix the
underlying problem (in both 2.1 and 2.2 branches).

Actually, it was a serious issue beyond the JAX-RS extension itself as the
internal connector wasn't restoring the current Response, Application,
Context and Virtual Host (thread local variables) when writing the outbound
entities.

Thanks,
Jerome
--
http://restlet.com
http://twitter.com/#!/jlouvel



2013/1/31 Daniel Halperin dhalp...@cs.washington.edu

 Hi everyone,

 I'm just getting started with RESTlet (v.2.1.1, with
 org.restlet.jee.ext.jackson  jee.ext.jaxrs), so I may be doing something
 very wrong. However, basic things work well for me. For instance, if I
 return POJOs from a function annotated with
 @Produces(MediaType.APPLICATION_JSON), they seem to be returned properly.

 Right now, I'm experimenting with implementing different handlers for
 different Content-Types. I started with the simplest possible: echo JSON
 input (converted to String) back as JSON:

 /**
  * Class that handles queries.
  *
  * @author dhalperi
  */
 @Path(/query)
 public final class QueryResource {
   /**
* For now, simply echoes back its input.
*
* @param input the payload of the POST request itself.
* @return the payload.
*/
   @POST
   @Produces(MediaType.APPLICATION_JSON)
   @Consumes(MediaType.APPLICATION_JSON)
   public String postNewQuery(final String input) {
 return input;
   }
 }

 If I access this resource with an invalid Content-Type (curl -i -XPOST
 localhost:8753/query -d hi), the curl process hangs and it looks like
 RESTlet experiences an internal exception deep in its code:

 Exception in thread Restlet-PipedWritableChannel
 java.lang.NullPointerException
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.getCurrentResponseEntityCharset(StringProvider.java:98)
 at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:178)
  at
 org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:63)
 at
 org.restlet.ext.jaxrs.internal.wrappers.provider.SingletonProvider.writeTo(SingletonProvider.java:350)
  at
 org.restlet.ext.jaxrs.internal.util.JaxRsOutputRepresentation.write(JaxRsOutputRepresentation.java:112)
 at
 org.restlet.representation.StreamRepresentation.write(StreamRepresentation.java:76)
  at org.restlet.engine.io.NioUtils$1.run(NioUtils.java:210)
 at java.lang.Thread.run(Thread.java:722)

 Google has literally no hits for 'Restlet-PipedWritableChannel'---so I
 came here. :)

 Note that if I use the expected Content-type, it works fine: curl -i
 -XPOST localhost:8753/query -H Content-type: application/json -d hi

 INFO: 2013-01-30 18:15:30 127.0.0.1 - - 8753 POST /query - 200 2 2 10
 http://localhost:8753 curl/7.28.1 -

 What suggestions does the group have for me?

 Thanks!
 Dan


--
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=3048268

internal NPE exception while handling 415 response

2013-01-30 Thread Daniel Halperin
Hi everyone,

I'm just getting started with RESTlet (v.2.1.1, with
org.restlet.jee.ext.jackson  jee.ext.jaxrs), so I may be doing something
very wrong. However, basic things work well for me. For instance, if I
return POJOs from a function annotated with
@Produces(MediaType.APPLICATION_JSON), they seem to be returned properly.

Right now, I'm experimenting with implementing different handlers for
different Content-Types. I started with the simplest possible: echo JSON
input (converted to String) back as JSON:

/**
 * Class that handles queries.
 *
 * @author dhalperi
 */
@Path(/query)
public final class QueryResource {
  /**
   * For now, simply echoes back its input.
   *
   * @param input the payload of the POST request itself.
   * @return the payload.
   */
  @POST
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  public String postNewQuery(final String input) {
return input;
  }
}

If I access this resource with an invalid Content-Type (curl -i -XPOST
localhost:8753/query -d hi), the curl process hangs and it looks like
RESTlet experiences an internal exception deep in its code:

Exception in thread Restlet-PipedWritableChannel
java.lang.NullPointerException
 at
org.restlet.ext.jaxrs.internal.provider.StringProvider.getCurrentResponseEntityCharset(StringProvider.java:98)
at
org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:178)
 at
org.restlet.ext.jaxrs.internal.provider.StringProvider.writeTo(StringProvider.java:63)
at
org.restlet.ext.jaxrs.internal.wrappers.provider.SingletonProvider.writeTo(SingletonProvider.java:350)
 at
org.restlet.ext.jaxrs.internal.util.JaxRsOutputRepresentation.write(JaxRsOutputRepresentation.java:112)
at
org.restlet.representation.StreamRepresentation.write(StreamRepresentation.java:76)
 at org.restlet.engine.io.NioUtils$1.run(NioUtils.java:210)
at java.lang.Thread.run(Thread.java:722)

Google has literally no hits for 'Restlet-PipedWritableChannel'---so I came
here. :)

Note that if I use the expected Content-type, it works fine: curl -i -XPOST
localhost:8753/query -H Content-type: application/json -d hi

INFO: 2013-01-30 18:15:30 127.0.0.1 - - 8753 POST /query - 200 2 2 10
http://localhost:8753 curl/7.28.1 -

What suggestions does the group have for me?

Thanks!
Dan

--
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447dsMessageId=3046837