[ 
https://issues.apache.org/jira/browse/OWB-435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12898041#action_12898041
 ] 

Eric Covener commented on OWB-435:
----------------------------------

#1 seems like very wrong behavior

> What is the expected result for following 2 decorators?
> -------------------------------------------------------
>
>                 Key: OWB-435
>                 URL: https://issues.apache.org/jira/browse/OWB-435
>             Project: OpenWebBeans
>          Issue Type: Question
>          Components: Interceptor and Decorators
>            Reporter: YING WANG
>            Assignee: Gurkan Erdogdu
>            Priority: Minor
>
> While I am testing 2 decorators decorate the same getName() method of 
> UserBean, I found the result is:
> 1. "UserDecorator1(UserDecorator2(MYNAME)) "   <==  Did call 
> UserDecorator1.getName() first, but before it finishes, it recursively 
> invokes the UserDecorator2.getName() on the calling stack.
> 2. or  should the result be:
> "UserDecorator2(MYNAME)"      <==== should decorator2's result overwrite 
> decorator1's?
> 3. or should the result be:
> "UserDecorator2(UserDecorator1(MYNAME)) "    <==== should decorator1's result 
> to the one used for decorator2?
> I prefer 3, but I am not sure which result is the correct one....
> ===================Userbean ========================
> public class UserBean implements UserInterface, Serializable 
> {
>     public String getName()
>     {
>       return "MYNAME";
>     }
> }
> ===================UserDecorator1 ========================
> @Decorator
> public abstract class UserDecorator1 implements UserInterface, Serializable 
> {
>       @Inject @Delegate @Any UserInterface ui;
>       
>       public String getName() {
>               return "UserDecorator1(" + ui.getName() + ")";
>       }
> }
> ===================UserDecorator2 ========================
> @Decorator
> public abstract class UserDecorator2 implements UserInterface, Serializable 
> {
>       @Inject @Delegate @Any UserInterface ui;
>       
>       public String getName() {
>               return "UserDecorator2(" + ui.getName() + ")";
>       }
> }
> ========================================================
>         <decorators>
>                 <class>com.jcdi.test.UserDecorator1</class>
>                 <class>com.jcdi.test.UserDecorator2</class>
>         </decorators>

-- 
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