On 23/02/12 16:06, Marek Potociar wrote:
> Yes it is there. But this particular use case is not explicitly covered. IOW it's ambiguous.
I'm not sure it is. @PathParam, @QueryParam and similar are scoped by
request. In case of getFoo() no such capturedvalue exists so it is null.
It's the same as
Path("{id1}")
getFoo(@PathParam("id1") String id1, @PathParam("id2") String id2)
id2 is null...Thus in
@PathParam("id2") String id2;
Path("{id1}")
getFoo(@PathParam("id1") String id1);
id2 is null
Cheers, Sergey
>
> Marek
>
> On 02/23/2012 02:49 PM, Sergey Beryozkin wrote:
>> btw, I'm not sure it is even in the spec now, support for injecting JAX-RS parameter values as properties (via fields or
>> setters), I recall it was in 0.8 or similar and at some stage I also remember seeing the advice about the thread safety
>> too; as it's impossible to inject a proxy for 'int'
>>
>> Sergey
>>
>> On 23/02/12 13:46, Sergey Beryozkin wrote:
>>> On 23/02/12 13:37, Marek Potociar wrote:
>>>> To elaborate more, consider also the extended example:
>>>>
>>>> @Path("foo")
>>>> public class FooResource {
>>>> @PathParam("id") String id;
>>>>
>>>> @GET
>>>> public String getFoo() {
>>>> return id;
>>>> }
>>>>
>>>> @GET
>>>> @Path("bar/{id}")
>>>> public String getBar() {
>>>> return id;
>>>> }
>>>> }
>>>>
>>>> Should the above be legal? What should be returned for a GET "/foo"
>>>> request?
>>>
>>> 'null' - because no "id" template var has been captured in context of
>>> getFoo(), this is why this style is limited to the per-request root
>>> resources only, not thread-safe otherwise
>>>
>>> Cheers, Sergey
>>>
>>>>
>>>> Marek
>>>>
>>>> On 02/23/2012 12:01 PM, Marek Potociar wrote:
>>>>> Hello experts,
>>>>>
>>>>> we've received a bug report in Jersey about the following use case:
>>>>>
>>>>> @Path("foo")
>>>>> public class FooResource {
>>>>> @PathParam("id") String id;
>>>>>
>>>>> @GET
>>>>> @Path("bar/{id}")
>>>>> public String get() {
>>>>> return id;
>>>>> }
>>>>> }
>>>>>
>>>>> My question is, given the "id" path template is defined on a
>>>>> sub-resource method, should the value still be injectable
>>>>> into the resource field or not?
>>>>>
>>>>> IOW, with the example above, what should be a result of GET
>>>>> "/foo/bar/baz" request? Should it be "baz" or null ?
>>>>>
>>>>> Thanks,
>>>>> Marek
>>>
>>>