I have been able to track it down to a specific place in the Seam code; but now
I'm stuck as to how to debug next.....
In Component.callComponentMethod the following is being executed:
| public Object callComponentMethod(Object instance, Method method, Object...
parameters) {
| Class[] paramTypes = method.getParameterTypes();
| String methodName = method.getName();
| if("bo.activity.finder".equals(name))
| log.fatal("1 CALLING CREATE METHOD["+methodName+"]");
| try
| {
| Method interfaceMethod = instance.getClass().getMethod(methodName,
paramTypes);
| if ( paramTypes.length==0 ||
interfaceMethod.getParameterTypes().length==0 )
| {
| if("bo.activity.finder".equals(name))
| log.fatal("2 CALLING CREATE METHOD["+methodName+"]
interfaceMethod["+interfaceMethod+"]");
| return Reflections.invokeAndWrap(interfaceMethod, instance);
| }
| else if ( parameters.length>0 )
| {interfaceMethod["+interfaceMethod+"]");
| return Reflections.invokeAndWrap(interfaceMethod, instance,
parameters);
| }
| else
| {interfaceMethod["+interfaceMethod+"]");
| return Reflections.invokeAndWrap(interfaceMethod, instance,
this);
| }
| }
| catch (NoSuchMethodException e)
| {
| String message = "method not found: " + method.getName() + " for
component: " + name;
| if ( getType().isSessionBean() )
| {
| message += " (check that it is declared on the session bean
business interface)";
| }
| throw new IllegalArgumentException(message, e);
| }
| }
The
| if("bo.activity.finder".equals(name))
| log.fatal("2 CALLING CREATE METHOD["+methodName+"]
| return Reflections.invokeAndWrap(interfaceMethod, instance);
Is not being executed correctly. When the session has not expired I get this
stack trace:
| 13:20:26,937 FATAL [Component] NEW COMPONENT[bo.activity.finder]
STATE[EVENT] !STATELESS[true] hasCreate[true]
| 13:20:26,937 FATAL [Component] 1 CALLING CREATE METHOD[initialize]
| 13:20:26,937 FATAL [Component] 2 CALLING CREATE METHOD[initialize]
interfaceMethod[public final void
com.itsolut.backoffice.actions.contact.activity.inf.IActivityGenericFinder$$EnhancerByCGLIB$$5d882077.initialize()]
| 13:20:26,937 FATAL [AppUtils] INITING
| java.lang.Exception
| at
com.itsolut.backoffice.actions.contact.activity.ActivityGenericFinder.init(ActivityGenericFinder.java:49)
| at com.itsolut.core.action.Finder.initialize(Finder.java:80)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
|
When I execute the next() after the session is expired I get:
| 13:22:46,609 FATAL [Component] NEW COMPONENT[bo.activity.finder]
STATE[EVENT] !STATELESS[true] hasCreate[true]
| 13:22:46,609 FATAL [Component] 1 CALLING CREATE METHOD[initialize]
| 13:22:46,609 FATAL [Component] 2 CALLING CREATE METHOD[initialize]
interfaceMethod[public final void
com.itsolut.backoffice.actions.contact.activity.inf.IActivityGenericFinder$$EnhancerByCGLIB$$5d882077.initialize()]
| ... and then nothing...the LOG message for INIT is not here like above
|
Seam looks like it is trying to invoke the @Create method. It just is never
actually invoked.
Thoughts? Is this a CGLIB issue?
Chris....
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4077890#4077890
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4077890
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user