Service decorations can fail if using the conventional naming
-------------------------------------------------------------

                 Key: TAP5-1305
                 URL: https://issues.apache.org/jira/browse/TAP5-1305
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-ioc
    Affects Versions: 5.1.0.4
            Reporter: Dan Adams


If you have a service FooBar and 2 modules that each have:

public static FooBar decorateFooBar(FooBar delegate, ...)

you will get a logging message like this:

[WARN] com.example.services.BazModule.FooBar Could not add object with 
duplicate id 'FooBar'.  The duplicate object has been ignored.

which results in one of the contributions (you don't know which one) being 
dropped. This is because T5 uses an ordered contribution internally when 
collecting the contributions and bases the id of the contribution based on the 
method name (drops "decorate").

It should either fail with an exception and a good error or support this 
behaviour. The problematic line is RegistryImpl.findDecoratorsForService (line 
634).

The work-around is to use @Match("FooBar") on the method and name it something 
different such as "decoratingWithMyThingy".

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

Reply via email to