Seam 2.0.0.GA, JBoss 4.2.1 Hi, I'm fairly sure this is a Seam bug.
I've set up an ObserveInitilization class as suggested by Pete Muir here: http://in.relation.to/Bloggers/DoingSomethingAtStartupWithSeam It looks like this: | | @Name("observeInitialization") | public class ObserveInitialization { | | @In(create=true) | Updater updater; | | @Observer("org.jboss.seam.postInitialization") | public void start() { | initialize(30 * 1000l); | } | | @Asynchronous | public void initialize(@Duration long durationInMilliseconds) { | updater.update(new Date(), "0 0/3 * * * ?"); | } | } | | The Updater class looks like this: @Name("updater") | public class Updater { | | @In | private EntityManager entityManager; | | @Logger | private Log log; | | @Asynchronous | public void update(@Expiration Date start, @IntervalCron String cron) { | //... | } | } The issue is this code calls ThreadPoolDispatcher.scheduleWithExecutorService, which casts the return value of createSchedule to a TimerSchedule. Because I'm using an @IntervalCron the return value of createSchedule is a CronSchedule which extends Schedule, but not TimerSchedule, so I get a ClassCastException 09:14:59,387 ERROR [[/admin]] Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener | java.lang.ClassCastException: org.jboss.seam.async.CronSchedule | at org.jboss.seam.async.ThreadPoolDispatcher.scheduleInvocation(ThreadPoolDispatcher.java:47) | at org.jboss.seam.async.ThreadPoolDispatcher.scheduleInvocation(ThreadPoolDispatcher.java:29) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | 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.SeamInvocationContext.proceed(SeamInvocationContext.java:56) | at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) | at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) | at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106) | at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155) | at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91) | at org.jboss.seam.async.ThreadPoolDispatcher_$$_javassist_6.scheduleInvocation(ThreadPoolDispatcher_$$_javassist_6.java) | at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:38) | at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) | at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106) | at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155) | at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91) | at com.company.Updater_$$_javassist_5.update(Updater_$$_javassist_5.java) | at com.company.ObserveInitialization.initialize(ObserveInitialization.java:29) | I compared this to the Quartz example packaged with Seam. That example also calls createSchedule but as a parameter to QuartzDispatcher.scheduleWithQuartzService which accepts a Schedule, thus no ClassCastException. Has anyone else run into this? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4106832#4106832 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4106832 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user