users@jersey.java.net

[Jersey] Re: Exceptions not being thrown when using JerseyTest

From: Erik Holstad <erikholstad_at_gmail.com>
Date: Wed, 26 Mar 2014 14:49:55 -0700

Adding @NotNull actually seems to have resolved the issue even when passing
in "" and not just null values


On Wed, Mar 26, 2014 at 2:26 PM, Erik Holstad <erikholstad_at_gmail.com> wrote:

> I have been able to isolate the issue, but I don't think it has anything
> to do with test framework.
>
> The issue occurs when you are sending in an empty String "" instead of a
> value or null.
>
> For the null case I had to add @NotNull to make it work, but when passing
> in "" I think it thows a NPE inside
> "throw new WebApplicationException(response);" which for some reason just
> makes the code flow continue getting to an actual NPE in my code.
>
>
> On Wed, Mar 26, 2014 at 12:57 AM, Vetle Leinonen-Roeim <vetle_at_roeim.net>wrote:
>
>> Perhaps you could try to create a complete test case and share it with
>> us on Github?
>>
>> On 26.03.14 01:29, Erik Holstad wrote:
>> > I tested the Grizzly, Jdk and InMemory factories and non of them are
>> > throwing the NPE, just seems like the fail silently, cause don't see any
>> > errors in the logs.
>> >
>> >
>> > On Tue, Mar 25, 2014 at 5:26 AM, Vetle Leinonen-Roeim <vetle_at_roeim.net
>> >wrote:
>> >
>> >> Hi,
>> >>
>> >> What test container factory are you using? Is there a difference if you
>> >> another test container factory?
>> >>
>> >> Regards,
>> >> Vetle
>> >>
>> >> On 24.03.14 22:26, Erik Holstad wrote:
>> >>> I have a servlet that looks something like:
>> >>>
>> >>> @POST
>> >>> @Path("")
>> >>> @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
>> >>> @Produces(MediaType.APPLICATION_JSON)
>> >>> public Response createUser(@FormParam(Params.NAME)
>> >>> RequiredString name) {
>> >>>
>> >>> name.toString();
>> >>>
>> >>> return Response.ok().build();
>> >>> }
>> >>>
>> >>>
>> >>> Where RequiredString validates the input and throws a
>> >>> WebApplicationException if it fails.
>> >>>
>> >>> This works fine when I deploy the code to a server or even when I use
>> the
>> >>> maven-jetty-plugin to run integration tests.
>> >>>
>> >>> The problem occurs when I run this using the JerseyTest class.
>> Everything
>> >>> is fine when I pass in valid data into name, but as soon as I pass in
>> >> empty
>> >>> string or null I get a NPE from the toString() method on the name
>> >> variable
>> >>> instead of the WebApplicationException I would expect.
>> >>>
>> >>>
>> >>> When stepping through the code I see it going in to the code where the
>> >>> exception is being thrown, but it looks like it just fails silently
>> and
>> >>> just continues the execution.
>> >>>
>> >>> Thoughts?
>> >>>
>> >>
>> >>
>> >
>> >
>>
>>
>
>
> --
> Regards Erik
>



-- 
Regards Erik