Hi Jay, (and David^2) Thanks for checking that. I didn't have time to experiment with it on Friday. Darn. Ok, well.
I just now checked my Seam users group posting on this. It looks like Gavin King replied. Please check it out, and don't hesitate to respond as well. http://www.seamframework.org/Community/Seam2JEE5CompliantWithTheTCKRequirements Geronimo and Seam and TCK Gavin mentioned to fill out a bug report. Any suggestions? Thanks everyone. This is really excellent. I wonder if we could get some kinda patch for Seam on Geronimo? .Burt Jay D. McHugh-3 wrote: > > Hey Burt, > > I just tried removing the @Destroy annotations in the booking example > but the errors still pop up. > > Jay > > Burt Prior wrote: >> 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-tp15621154s134p15918266.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
