4 Replies Latest reply on Apr 20, 2009 3:25 PM by Juergen B

    Problem in quartz destruction

    Kristoffer T Newbie

      It would seem that a destruction of a seam component created by quartz, cascades in destroying the wrapping component for quartz.
      This component seems to be missing the @Destroy-method.

      13:19:00,595 WARN  [Component] Exception calling component @Destroy method: timer
      java.lang.IllegalArgumentException: method not found: remove for component: timer
           at org.jboss.seam.Component.callComponentMethod(Component.java:2233)
           at org.jboss.seam.Component.callDestroyMethod(Component.java:2146)
           at org.jboss.seam.Component.destroy(Component.java:1440)
           at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:251)
           at org.jboss.seam.contexts.Contexts.flushAndDestroyContexts(Contexts.java:394)
           at org.jboss.seam.contexts.Lifecycle.endCall(Lifecycle.java:96)
           at org.jboss.seam.async.Asynchronous$ContextualAsynchronousRequest.cleanup(Asynchronous.java:91)
           at org.jboss.seam.async.Asynchronous$ContextualAsynchronousRequest.run(Asynchronous.java:84)
           at org.jboss.seam.async.AsynchronousInvocation.execute(AsynchronousInvocation.java:44)
           at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:243)
           at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
           at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
      Caused by: java.lang.NoSuchMethodException: org.jboss.seam.async.QuartzTriggerHandle.remove()
           at java.lang.Class.getMethod(Class.java:1605)
           at org.jboss.seam.Component.callComponentMethod(Component.java:2212)
           ... 11 more


        • 1. Re: Problem in quartz destruction
          Emil Iakoupov Newbie
          i am having exactly the same problem:
          if i do any of the following:
          a) raise asuynchronous event
          b) declare method as asynchronous (EJB and POJO)

          i did add <async:timer-service-dispatcher/> to components.xml

          what is the "timer" component?
          • 2. Re: Problem in quartz destruction
            Emil Iakoupov Newbie

            i found the source of the problem,
              when seamgen created project with icefaces, timer component came with other action classes. i disabled it, asynchronous event is fine now.

            • 3. Re: Problem in quartz destruction
              judy guglielmin Novice

              I'm not sure why you would want to use ICEfaces and quartz and I would be interested to find out what the use-case or application might be.  With ICEfaces, you get asynchronous ability by configuring the proper context parameter in web.xml.  The RenderManager then provides the IntervalRenderer, OnDemandRenderer, BroadcastRenderer, SessionRenderer.  The reason the TimerBean is left in seam-gen is for example of how to use IntervalRenderer (it's not accessed by any of the view pages).  Perhaps it's time to remove it.  It's always interesting when you can use some parts of various things and make them work, so I guess that's what I'm inquiring about.

              • 4. Re: Problem in quartz destruction
                Juergen B Newbie

                I'm facing the same problem:
                An action method declared @Asynchronous causes IllegalArgumentException: method not found: remove for component: timer

                Please can you explain in detail how to solve it. I used seamgen to create a CRUD application with icefaces.
                (Seam 2.1.0.SP1, ICEfaces 1.7.2)

                Thank you!