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




Reply via email to