You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by Martin Koci <ma...@gmail.com> on 2011/07/23 16:49:09 UTC
JavassistProxyFactory and Bean.setHandler method
Hi,
if managed bean has own method setHandler ->
javassist.bytecode.DuplicateMemberException
this is probably limitation of javassist.util.proxy.ProxyObject which
has exactly this method. Unproxyable object with javassist = CDI spec
5.4.1. Unproxyable bean types + " has method named setHandler"
Regards,
Kočičák
javax.enterprise.inject.CreationException:
javassist.bytecode.DuplicateMemberException: duplicate method:
getHandler in cz.kociciak.test.Bean_$$_javassist_149
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:200)
at org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:80)
at org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:225)
at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:135)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
at cz.kociciak.test.Bean_$$_javassist_147.preRenderView(Bean_$$_javassist_147.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at de.odysseus.el.tree.impl.ast.AstProperty.invoke(AstProperty.java:198)
at de.odysseus.el.tree.impl.ast.AstEval.invoke(AstEval.java:71)
at de.odysseus.el.TreeMethodExpression.invoke(TreeMethodExpression.java:132)
at org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
at org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener.processEvent(EventHandler.java:243)
at javax.faces.component.UIComponent$EventListenerWrapper.processEvent(UIComponent.java:1324)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:43)
at org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2117)
at org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:537)
at org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:567)
at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.BlockingFilter.doFilter(BlockingFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cz.aura.shared.web.httpfilters.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:102)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Re: JavassistProxyFactory and Bean.setHandler method
Posted by Martin Koci <ma...@gmail.com>.
Hi,
Mark Struberg píše v So 23. 07. 2011 v 16:24 +0100:
> Hi Kocicak!
>
> You are catching lots of issues lately - txs 4 doing all the reporting!
>
> Do you get this also for setHandler(String) ?
> The method from ProxyObject has a MethodHandler param. But of course the
> ProxyObject#getHandler() is really a problem!
ahh, my bad, expcetion clearly says "getHandler" not "setHandler". Not
problem with setter here, only with getter, because method cannot differ
only in return type.
>
> I'd say this is an issue we should report to the javassist team. It needs to get fixed over there!
>
> Easiest would be to just rename those methods to setIntJavassistMethodHandler(MethodHandler) resp getIntJavassistMethodHAndler();
>
> Are you going to report it or should I do it?
Please do so, you have better knowledge of context.
Kočičák
> txs and LieGrue,
> strub
>
> --- On Sat, 7/23/11, Martin Koci <ma...@gmail.com> wrote:
>
> > From: Martin Koci <ma...@gmail.com>
> > Subject: JavassistProxyFactory and Bean.setHandler method
> > To: dev@openwebbeans.apache.org
> > Date: Saturday, July 23, 2011, 2:49 PM
> > Hi,
> >
> > if managed bean has own method setHandler ->
> > javassist.bytecode.DuplicateMemberException
> >
> > this is probably limitation of
> > javassist.util.proxy.ProxyObject which
> > has exactly this method. Unproxyable object with javassist
> > = CDI spec
> > 5.4.1. Unproxyable bean types + " has method named
> > setHandler"
> >
> > Regards,
> >
> > Kočičák
> >
> > javax.enterprise.inject.CreationException:
> > javassist.bytecode.DuplicateMemberException: duplicate
> > method:
> > getHandler in cz.kociciak.test.Bean_$$_javassist_149
> > at
> > org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:200)
> > at
> > org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:80)
> > at
> > org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:225)
> > at
> > org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
> > at
> > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:135)
> > at
> > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> > at
> > cz.kociciak.test.Bean_$$_javassist_147.preRenderView(Bean_$$_javassist_147.java)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at
> > java.lang.reflect.Method.invoke(Method.java:597)
> > at
> > de.odysseus.el.tree.impl.ast.AstProperty.invoke(AstProperty.java:198)
> > at
> > de.odysseus.el.tree.impl.ast.AstEval.invoke(AstEval.java:71)
> > at
> > de.odysseus.el.TreeMethodExpression.invoke(TreeMethodExpression.java:132)
> > at
> > org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
> > at
> > org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener.processEvent(EventHandler.java:243)
> > at
> > javax.faces.component.UIComponent$EventListenerWrapper.processEvent(UIComponent.java:1324)
> > at
> > javax.faces.event.SystemEvent.processListener(SystemEvent.java:43)
> > at
> > org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2117)
> > at
> > org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:537)
> > at
> > org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:567)
> > at
> > javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
> > at
> > javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
> > at
> > org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
> > at
> > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
> > at
> > javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > at
> > org.apache.myfaces.webapp.filter.BlockingFilter.doFilter(BlockingFilter.java:72)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > at
> > cz.aura.shared.web.httpfilters.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:102)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> > at
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > at
> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> > at
> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> > at
> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> > at
> > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> > at
> > java.lang.Thread.run(Thread.java:662)
> >
> >
> >
>
Re: JavassistProxyFactory and Bean.setHandler method
Posted by Mark Struberg <st...@yahoo.de>.
Hi Kocicak!
You are catching lots of issues lately - txs 4 doing all the reporting!
Do you get this also for setHandler(String) ?
The method from ProxyObject has a MethodHandler param. But of course the
ProxyObject#getHandler() is really a problem!
I'd say this is an issue we should report to the javassist team. It needs to get fixed over there!
Easiest would be to just rename those methods to setIntJavassistMethodHandler(MethodHandler) resp getIntJavassistMethodHAndler();
Are you going to report it or should I do it?
txs and LieGrue,
strub
--- On Sat, 7/23/11, Martin Koci <ma...@gmail.com> wrote:
> From: Martin Koci <ma...@gmail.com>
> Subject: JavassistProxyFactory and Bean.setHandler method
> To: dev@openwebbeans.apache.org
> Date: Saturday, July 23, 2011, 2:49 PM
> Hi,
>
> if managed bean has own method setHandler ->
> javassist.bytecode.DuplicateMemberException
>
> this is probably limitation of
> javassist.util.proxy.ProxyObject which
> has exactly this method. Unproxyable object with javassist
> = CDI spec
> 5.4.1. Unproxyable bean types + " has method named
> setHandler"
>
> Regards,
>
> Kočičák
>
> javax.enterprise.inject.CreationException:
> javassist.bytecode.DuplicateMemberException: duplicate
> method:
> getHandler in cz.kociciak.test.Bean_$$_javassist_149
> at
> org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:200)
> at
> org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:80)
> at
> org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:225)
> at
> org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
> at
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:135)
> at
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> at
> cz.kociciak.test.Bean_$$_javassist_147.preRenderView(Bean_$$_javassist_147.java)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at
> java.lang.reflect.Method.invoke(Method.java:597)
> at
> de.odysseus.el.tree.impl.ast.AstProperty.invoke(AstProperty.java:198)
> at
> de.odysseus.el.tree.impl.ast.AstEval.invoke(AstEval.java:71)
> at
> de.odysseus.el.TreeMethodExpression.invoke(TreeMethodExpression.java:132)
> at
> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83)
> at
> org.apache.myfaces.view.facelets.tag.jsf.core.EventHandler$Listener.processEvent(EventHandler.java:243)
> at
> javax.faces.component.UIComponent$EventListenerWrapper.processEvent(UIComponent.java:1324)
> at
> javax.faces.event.SystemEvent.processListener(SystemEvent.java:43)
> at
> org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2117)
> at
> org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:537)
> at
> org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:567)
> at
> javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
> at
> javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:335)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
> at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.myfaces.webapp.filter.BlockingFilter.doFilter(BlockingFilter.java:72)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> cz.aura.shared.web.httpfilters.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:102)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at
> java.lang.Thread.run(Thread.java:662)
>
>
>