[seam-issues] [JBoss JIRA] Updated: (JBSEAM-4727) DuplicateMemberException with Sessionbean components

Martin Höller (JIRA) jira-events at lists.jboss.org
Mon Nov 22 12:52:54 EST 2010


     [ https://jira.jboss.org/browse/JBSEAM-4727?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Höller updated JBSEAM-4727:
----------------------------------

    Attachment: seambug.tar.gz


Attached sample to reproduce the problem.

> DuplicateMemberException with Sessionbean components
> ----------------------------------------------------
>
>                 Key: JBSEAM-4727
>                 URL: https://jira.jboss.org/browse/JBSEAM-4727
>             Project: Seam
>          Issue Type: Bug
>    Affects Versions: 2.2.1.CR2
>         Environment: Tested with Seam 2.2.1.CR2 on Linux with JBoss AS 5.1.0.GA.
>            Reporter: Martin Höller
>         Attachments: seambug.tar.gz
>
>
> Under some circumstances a session bean that is made to a seam component throws DuplicateMemberExceptions on instantiation.
> The stacktrace is as follows:
> org.jboss.seam.InstantiationException: Could not instantiate Seam component: myBean
>         at org.jboss.seam.Component.newInstance(Component.java:2170)
>         at org.jboss.seam.Component.getInstance(Component.java:2024)
>         at org.jboss.seam.Component.getInstance(Component.java:1986)
>         at org.jboss.seam.Component.getInstance(Component.java:1980)
>         at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
>         at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
>         at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:148)
>         at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51)
>         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
>         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
>         at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
>         at org.jboss.el.parser.AstValue.getValue(AstValue.java:63)
>         at org.jboss.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:26)
>         at org.jboss.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:31)
>         at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
>         at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
>         at javax.faces.component.UIOutput.getValue(UIOutput.java:184)
>         at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201)
>         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:284)
>         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:154)
>         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
>         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
>         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
>         at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:594)
>         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
>         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
>         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
>         at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>         at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>         at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>         at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>         at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
>         at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>         at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>         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:235)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
>         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
>         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
>         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
>         at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:905)
>         at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:592)
>         at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2036)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.RuntimeException: duplicate method: iterator in org.javassist.tmp.java.lang.Object_$$_javassist_seam_2
>         at org.jboss.seam.util.ProxyFactory.createClass3(ProxyFactory.java:355)
>         at org.jboss.seam.util.ProxyFactory.createClass2(ProxyFactory.java:325)
>         at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:284)
>         at org.jboss.seam.Component.createProxyFactory(Component.java:2452)
>         at org.jboss.seam.Component.getProxyFactory(Component.java:1516)
>         at org.jboss.seam.Component.wrap(Component.java:1507)
>         at org.jboss.seam.Component.instantiateSessionBean(Component.java:1404)
>         at org.jboss.seam.Component.instantiate(Component.java:1367)
>         at org.jboss.seam.Component.newInstance(Component.java:2148)
>         ... 61 more
> Caused by: javassist.bytecode.DuplicateMemberException: duplicate method: iterator in org.javassist.tmp.java.lang.Object_$$_javassist_seam_2
>         at javassist.bytecode.ClassFile.testExistingMethod(ClassFile.java:593)
>         at javassist.bytecode.ClassFile.addMethod(ClassFile.java:577)
>         at org.jboss.seam.util.ProxyFactory.override(ProxyFactory.java:672)
>         at org.jboss.seam.util.ProxyFactory.overrideMethods(ProxyFactory.java:646)
>         at org.jboss.seam.util.ProxyFactory.make(ProxyFactory.java:566)
>         at org.jboss.seam.util.ProxyFactory.createClass3(ProxyFactory.java:346)
>         ... 69 more
> The circumstances that trigger this bug seam to be as follos:
> * A seam component that is a session bean has two implement some interfaces
> * Two of the implemented interfaces have to override a method from a common super-interface while changing the return type
> I'll attch a demo-project that illustrates the problem. For this, I took the interface java.lang.Iterable which defines the method iterator() which returns java.util.Iterator. I created two interfaces each extending Iterable and overriding interator() with a modified return type (MyIterator). My component then implements both interfaces which triggers the bug.
> I hope I made myself clear enough. If not, please ask for details.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the seam-issues mailing list