Hi Sergey,
I have created an issue in Jira and attached the sample code that can be
used to reproduce the problem:
https://issues.apache.org/jira/browse/CXF-5073
Thanks,
Andras



On Thu, Jun 6, 2013 at 1:26 PM, Sergey Beryozkin <[email protected]>wrote:

> Hi
>
> On 06/06/13 08:23, Andras Nagy wrote:
>
>> Hi All,
>>
>> I'm having a problem creating a JAX-RS client proxy with CXF version
>> 2.7.5.
>> I wrote a simple sample application designed with a resource model that is
>> built up of "Product"s which contain "parts" which are also "Product"s
>> ("Parts" being a collection wrapper resource).
>> Creating the client proxy for these resources gets into an endless
>> recursion (and eventually fails with a stack overflow). I assume this is
>> related to the loop among the resources (Product -> Parts -> Product).
>> When this loop is "immediate", i.e. Product directly references its part
>> Products without the separate "Parts" collection wrapper, the client proxy
>> creation does not get into the endless recursion and succeeds.
>> On the server side, there are no problems with either resource model.
>>
>> If this is not a known limitation, I would go ahead and file it in the
>> issue tracker with the actual code sample, I'd just like someone to
>> confirm
>> that.
>>
>>  Likely a bug somewhere in the client proxy creation, though not exactly
> sure where
>
>
>
>  Of course it's also possible that I'm just doing something wrong. Here are
>> the relevant resource interfaces (simplified):
>>
>> @XmlRootElement(name = "ProductResource")
>> @Produces("application/json")
>> public interface IProductResource {
>> @Path("/parts")
>> public IPartsResource getParts();
>>
>> ...
>> }
>>
>> @XmlRootElement(name = "PartsResource")
>> @Produces("application/json")
>> public interface IPartsResource {
>> @Path("/{i}/")
>> public IProductResource elementAt(@PathParam("i") String i);
>>
>> ...
>> }
>>
>> And the line that gets into the endless recursion (again simplified a
>> bit):
>> IProductResource productResource = JAXRSClientFactory.create("
>> http://localhost:9000";, IProductResource.class);
>>
>>
> Can you please open a JIRA with the details, I wonder where does it go
> into the loop...
>
> Thanks, Sergey
>
>
>  Thank you for your help,
>> best regards,
>> Andras
>>
>>
>
> --
> Sergey Beryozkin
>
> Talend Community Coders
> http://coders.talend.com/
>
> Blog: http://sberyozkin.blogspot.com
>

Reply via email to