Skip to main content

[ejb-spec issues] [JIRA] Created: (EJB_SPEC-87) Align Interceptor callback method signatures

  • From: "dblevins (JIRA)" <jira-no-reply@...>
  • To: issues@...
  • Subject: [ejb-spec issues] [JIRA] Created: (EJB_SPEC-87) Align Interceptor callback method signatures
  • Date: Wed, 30 Jan 2013 19:24:53 +0000 (GMT+00:00)
  • Auto-submitted: auto-generated

Align Interceptor callback method signatures
--------------------------------------------

                 Key: EJB_SPEC-87
                 URL: http://java.net/jira/browse/EJB_SPEC-87
             Project: ejb-spec
          Issue Type: Improvement
            Reporter: dblevins
             Fix For: 3.2


Currently the rules are interceptor signatures for callbacks are not allowed 
to return Object or throw Exception.  Blogged about it here: 
http://blog.dblevins.com/2010/09/ejbnext-interceptor-improvements-method.html

We chose that altered method signature because it effectively matched the 
method signature of the callback itself, but it has some terrible 
consequences.  The worst is that InvocationContext.proceed() method signature 
is always the same:

 {code}public Object proceed() throws Exception{code}

When the Interceptor isn't allowed to have the same method signature it 
creates awkward and unfortunately unavoidable boiler plate:

{code}
   @PostConstruct
   @PreDestroy
   @PrePassivate
   @PostActivate
   @AroundTimeout
   public void callback(InvocationContext context) {
       try {
           intercept(context);
       } catch (Exception e) {
           if (e instanceof RuntimeException) {
               throw (RuntimeException) e;
           } else{
               throw new RuntimeException(e);
           }
       }
   }
{code}

Requiring each interceptor to catch and handle the 'throws Exception' from 
the InvocationContext.proceed() call is unfortunate.  The interceptor should 
be allowed to let any exceptions propagate.

We should update the spec rules so that interceptor method signatures for 
callbacks are allowed to be the same and let the container handle the 
possible undeclared exception issues rather than force that upon the 
application code in every single callback interceptor they create.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[ejb-spec issues] [JIRA] Created: (EJB_SPEC-87) Align Interceptor callback method signatures

dblevins (JIRA) 01/30/2013

[ejb-spec issues] [JIRA] Commented: (EJB_SPEC-87) Align Interceptor callback method signatures

marina vatkina (JIRA) 01/31/2013
 
 
Close
loading
Please Confirm
Close