Hi David, I just posted on SeamFramework.org:
http://www.seamframework.org/Community/Seam2JEE5CompliantWithTheTCKRequirements Seam Posting I'm hoping to get some way to resolve this issue soon. Perhaps its as you mentioned: Can't I just safely remove @Destroy? Thanks, .Burt djencks wrote: > > > On Mar 7, 2008, at 2:51 PM, Burt Prior wrote: > >> >> Hi David and David, >> >> First, thank you both for helping us. Our team has been hanging on >> your >> every post! >> >>> Do you have any evidence that seam runs with a bean with a @Destroy >>> annotated method on any certified platform? >> >> I sure don't, other than latest Seam doc/articles i've went thru here: >> http://seamframework.org/Documentation/GettingStarted Getting >> Started with >> Seam >> >> Also, this booking example is the 'jee5' booking example; there is >> a 'non >> jee5' booking example as well in every Seam download. I think the >> 'non >> jee5' uses plain JavaBean and Hibernate instead of EJB3 and JPA. >> >> The only other JEE5 certified platform I know of that works with >> Seam is >> GlassFish. Not from personal exerience but from articles from Sun >> and Seam. >> http://weblogs.java.net/blog/caroljmcdonald/archive/2007/07/ >> sample_applicat_1.html >> GlassFish and Seam >> >> I was just wondering. Anyone running Seam on a JEE5 compliant >> server such >> Geronimo or GlassFish must get the same error? > > Well, if they have an ejb with a @Destroy method we think they will > get this error. The glassfish example for v2 does have one @Destroy > method in CatalogBean but my experience trying to extract information > from Glassfish has not been a happy one so I haven't tried anything > on it. > >> >>> Also, it doesn't make much sense. >> >> Yes, i agree. All the errors we solved to get to this point 'made >> sense'. >> But when I saw this error, and read David's response, i thought we >> were in >> trouble; If I'm hitting up against the spec, and I can't change my >> code, >> where does that leave my architecture? (Geronimo, EJB3, Seam, >> Oracle, JPA, >> JSF). >> >>> I would think the jboss/seam developers would be the ones to start >>> this >>> although we might challenge it also. >> >> Yes, I will post on the appropriate Seam list today. I guess the >> question >> is to focus on @Destroy? How would you phrase it? >> >> What also doesn't make sense is the Seam doc for @Destroy. Why do >> we see >> any issue at all? >> http://docs.jboss.com/seam/2.1.0.A1/reference/en/html/ >> annotations.html#d0e19563 >> Seam @Destroy Annotation >> >> >>> The challenge process typically takes a while. >> >> Yes. Not really an option for us. We are trying get our Geronimo >> app out >> now. >> >>> Other than filling up your logs what problems is this causing? >> >> There appears to be no other errors or problems. I've been >> exercising the >> app, watching the console log in real time in the eclipse console, >> then >> checking the db. It appears to work fine. It throws the >> exceptions, then >> recovers. It's always the same error: 'Callback methods cannot access >> parameters'. >> >>> Seeing the entire stack trace from your bean's @Destroy method to the >>> original exception might possibly shed more light on the subject. > > Does the destroy method on your beans actually do anything? If, like > the samples, it does nothing, the simplest solution is to leave it > out. If if does do something, does it get called? My belief from > the stack trace is that it does not due to the exception. > > As for wording... that's tricky. I guess I'd say that running the > app on the geronimo/openejb javaee5 certified container results in > the stack trace and that allowing the InvocationContext to supply the > parameters during a lifecycle call results in tck failures. I'd ask > if they can run the sample with the @Destroy method getting called on > a certified container without getting an exception and perhaps > mention that we aren't aware of any support in the spec itself for > this requirement. > > I'd include this part of the stack trace: > > 11:25:05,179 ERROR [OpenEJB] The bean instance business method > encountered a > system exception: Callback methods cannot access parameters > java.lang.IllegalStateException: Callback methods cannot access > parameters > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.getParam > eters(ReflectionInvocationContext.java:71) > at > org.jboss.seam.intercept.EJBInvocationContext.getParameters > (EJBInvocationContext.java:34) > at > org.jboss.seam.intercept.SeamInvocationContext.getParameters > (SeamInvocationContext.java:49) > at > org.jboss.seam.core.MethodContextInterceptor.aroundInvoke > (MethodContextInterceptor.java:33) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:68) > at > org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke > (EntityManagerProxyInterceptor.java:26) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:68) > at > org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke > (HibernateSessionProxyInterceptor.java:27) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:68) > at > org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: > 107) > at > org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke > (SessionBeanInterceptor.java:50) > at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext > $Invocation.invoke(ReflectionInvocationContext.java:146) > at > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed( > ReflectionInvocationContext.java:129) > at > org.apache.openejb.core.interceptor.InterceptorStack.invoke > (InterceptorStack.java:67) > at > org.apache.openejb.core.stateful.StatefulContainer._invoke > (StatefulContainer.java:428) > at > org.apache.openejb.core.stateful.StatefulContainer.removeEJBObject > (StatefulContainer.java:332) > at > org.apache.openejb.core.stateful.StatefulContainer.invoke > (StatefulContainer.java:244) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod > (EjbObjectProxyHandler.java:217) > at > org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke > (EjbObjectProxyHandler.java:77) > at > org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke > (BaseEjbProxyHandler.java:321) > at > org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke > (Jdk13InvocationHandler.java:49) > at $Proxy76.destroy(Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) > at > org.jboss.seam.intercept.RootInvocationContext.proceed > (RootInvocationContext.java:31) > at > org.jboss.seam.intercept.ClientSideInterceptor$1.proceed > (ClientSideInterceptor.java:76) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:56) > at > org.jboss.seam.ejb.RemoveInterceptor.aroundInvoke > (RemoveInterceptor.java:41) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:68) > at > org.jboss.seam.core.SynchronizationInterceptor.aroundInvoke > (SynchronizationInterceptor.java:32) > at > org.jboss.seam.intercept.SeamInvocationContext.proceed > (SeamInvocationContext.java:68) > at > org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java: > 107) > at > org.jboss.seam.intercept.ClientSideInterceptor.invoke > (ClientSideInterceptor.java:54) > at > org.javassist.tmp.java.lang.Object_$$_javassist_4.destroy(Object_$ > $_javassist_4.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) > at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) > at org.jboss.seam.Component.callComponentMethod(Component.java:2084) > at org.jboss.seam.Component.callDestroyMethod(Component.java:2015) > at org.jboss.seam.Component.destroy(Component.java:1331) > at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:251) > at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:249) > at > org.jboss.seam.contexts.ServletLifecycle.endSession > (ServletLifecycle.java:129) > at > org.jboss.seam.servlet.SeamListener.sessionDestroyed > (SeamListener.java:49) > at > org.mortbay.jetty.servlet.AbstractSessionManager.removeSession > (AbstractSessionManager.java:665) > at > org.mortbay.jetty.servlet.AbstractSessionManager$Session.invalidate > (AbstractSessionManager.java:938) > at > org.mortbay.jetty.servlet.HashSessionManager$Session.invalidate > (HashSessionManager.java:493) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.jboss.seam.contexts.FacesLifecycle.invalidateSession > (FacesLifecycle.java:141) > at > org.jboss.seam.contexts.FacesLifecycle.endRequest(FacesLifecycle.java: > 118) > at > org.jboss.seam.jsf.SeamPhaseListener.afterRenderResponse > (SeamPhaseListener.java:515) > at > org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase > (SeamPhaseListener.java:247) > at > org.jboss.seam.jsf.SeamPhaseListener.afterPhase > (SeamPhaseListener.java:194) > at > org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAf > ter(PhaseListenerManager.java:92) > at > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java: > 142) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 487) > at > org.apache.geronimo.jetty6.InternalJettyServletHolder.handle > (InternalJettyServletHolder.java:65) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1093) > at > org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter > (SeamFilter.java:83) > at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85) > 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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java: > 141) > at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) > at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) > at > org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter > (SeamFilter.java:69) > at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) > at > org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter > (SeamFilter.java:69) > at > org.jboss.seam.debug.hot.HotDeployFilter.doFilter > (HotDeployFilter.java:68) > at > org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter > (SeamFilter.java:69) > at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1084) > at org.mortbay.jetty.servlet.ServletHandler.handle > (ServletHandler.java:360) > at > org.mortbay.jetty.security.SecurityHandler.handle > (SecurityHandler.java:216) > at org.mortbay.jetty.servlet.SessionHandler.handle > (SessionHandler.java:181) > at org.mortbay.jetty.handler.ContextHandler.handle > (ContextHandler.java:726) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 405) > at > org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101 > (TwistyWebAppContext.java:40) > at > org.apache.geronimo.jetty6.handler.TwistyWebAppContext > $TwistyHandler.handle(TwistyWebAppContext.java:65) > at > org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle > (ThreadClassloaderHandler.java:46) > at > org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle > (InstanceContextHandler.java:58) > at > org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle > (UserTransactionHandler.java:48) > at > org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle > (ComponentContextHandler.java:47) > at > org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle > (TwistyWebAppContext.java:59) > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle > (ContextHandlerCollection.java:206) > at > org.mortbay.jetty.handler.HandlerCollection.handle > (HandlerCollection.java:114) > at org.mortbay.jetty.handler.HandlerWrapper.handle > (HandlerWrapper.java:139) > at org.mortbay.jetty.Server.handle(Server.java:324) > at org.mortbay.jetty.HttpConnection.handleRequest > (HttpConnection.java:505) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete > (HttpConnection.java:828) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) > at > org.mortbay.io.nio.SelectChannelEndPoint.run > (SelectChannelEndPoint.java:395) > at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214) > at > org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run > (ThreadPool.java:344) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown > Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > > > <snip> > > Hope this helps > thanks > david jencks > > > -- View this message in context: http://www.nabble.com/Geronimo-2.1-and-Seam-tp15621154s134p15910538.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
