[ 
https://issues.apache.org/jira/browse/TAPESTRY-2647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12629629#action_12629629
 ] 

Howard M. Lewis Ship commented on TAPESTRY-2647:
------------------------------------------------


Found the problem.

You have two services with the same service id.

The real bug is that using bind() to define a service that conflicts with a 
builder method is not causing an error.  It should.

The end result is that the HelloWorld implementation is "lost".  That leaves 
just the definition provided by the service builder method, and that's why 
invoking the method on the service is recursive, endlessly.

> IOC services bound using a marker behave differently than services with a 
> serviceId thus producing a StackOverflow
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAPESTRY-2647
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2647
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-ioc
>    Affects Versions: 5.0.14
>            Reporter: Kristian Marinkovic
>            Assignee: Howard M. Lewis Ship
>         Attachments: test.zip
>
>
> the module class below produces a StackOverflow if i try to call the chain. 
> if i use a serviceId instead of the marker annotation everything work as 
> expected. it seems, that a marker annotation does not have the same behaviour 
> as a serviceId. see also the attached maven project that examplifies the 
> problem.
> public final class StackOverflowModule 
> {
>       public static void bind(ServiceBinder binder)
>       {
>               binder.bind(ChainInterface.class, 
> HelloWorld.class).withMarker(Default.class);
>       }
>       
>       public ChainInterface buildChainInterface(List<ChainInterface> 
> chainItems, ChainBuilder builder)
>       {
>               return builder.build(ChainInterface.class, chainItems);
>       }
>       
>       public void 
> contributeChainInterface(OrderedConfiguration<ChainInterface> chainItems,
>                       @Default ChainInterface helloWorld)
>       {
>               chainItems.add("Default", helloWorld);
>       }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to