Hi Scott, I've upgraded my 3.1..s080202 snapshot to release 3.1.5 today, and found my intercepted components broken. After some examinations, I think the problem should be the runtime weaver who was responsible to generate code for webbeans component annotated to be intercepted. The attachment is an IntelliJ IDEA project which contains a trivial servlet calling a injected service to output "hello" to html out. There're four classes below:
================the binding type, no problem============ package com.mycompany.interceptors; import javax.webbeans.InterceptorBindingType; import java.lang.annotation.*; @InterceptorBindingType @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Cachable { } =============================================== ================the interceptor, no problem============ package com.mycompany.interceptors; import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; import javax.webbeans.Interceptor; @Cachable @Interceptor public class CacheInterceptor { public CacheInterceptor() { } @AroundInvoke public Object invoke(final InvocationContext invocation) throws Throwable { System.out.println("intercepted"); return invocation.proceed(); } } =============================================== ================the servlet, no problem================ package com.mycompany.servlet; import com.mycompany.services.TestService; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import javax.webbeans.In; import java.io.IOException; public class MyServlet extends HttpServlet { @In TestService service; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { response.getOutputStream().print(service.service()); } catch (Exception e) { throw new ServletException(e); } } } =============================================== ================the service component, BUG!!!!!========== package com.mycompany.services; import com.mycompany.interceptors.Cachable; import javax.webbeans.Component; @Component public class TestService { public TestService() { } @Cachable public String service() throws Exception { // todo bug: if not throws Exception, everything is ok return "hello"; } } =============================================== Note the TODO in the service component code. Sorry I sent an incomplete mail a minute ago. Regards, -Wesley _______________________________________________ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest