[seam-issues] [JBoss JIRA] Created: (SEAMPERSIST-61) null entityManager in Quartz job

JEE 4 Hire (JIRA) jira-events at lists.jboss.org
Wed Jul 20 11:15:23 EDT 2011


null entityManager in Quartz job
--------------------------------

                 Key: SEAMPERSIST-61
                 URL: https://issues.jboss.org/browse/SEAMPERSIST-61
             Project: Seam Persistence
          Issue Type: Bug
    Affects Versions: 3.0.0.Final
         Environment: jboss-as-7.0.0.Final
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Linux omega 2.6.32-33-generic-pae #70-Ubuntu SMP Thu Jul 7 22:51:12 UTC 2011 i686 GNU/Linux

            Reporter: JEE 4 Hire


When the QuartzInitializer starts, the entityManager is not null.
When the HelloJob executes, the entityManager is null.
Also, the instance of org.jboss.logging.Logger does not work inside HelloJob.
How can I get a valid handle to entityManager inside HelloJob?
Why exactly is it failing? Is it because the job is retrieved from the database when it is run
by the quartz scheduler? In Seam 2, using @In EntityManager entityManager worked.

For more detail: 
http://seamframework.org/Community/NullEntityManagerInQuartzJob


@Singleton
@Startup
public class QuartzInitializer {
  @PersistenceContext
  private EntityManager entityManager;
  @Inject
  private Logger log;

  public QuartzInitializer() {
  }

  @PostConstruct
  public void init() throws Exception {
    startScheduler();
    createJob();
  }

  public void startScheduler() throws Exception {
    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("seam.quartz.properties");
    StdSchedulerFactory sf = new StdSchedulerFactory();
    sf.initialize(is);
    sched = sf.getScheduler();
    sched.start();
  }

  public void createJob() throws Exception {
    SchedulerFactory sf = new StdSchedulerFactory();
    Scheduler scheduler = sf.getScheduler("QuartzScheduler00");
    Date runTime = evenMinuteDate(new Date());
    // define the job and tie it to our HelloJob class
    JobDetail job = newJob(HelloJob.class)
        .withIdentity("job1", "group1")
        .build();
    // Trigger the job to run on the next round minute
    Trigger trigger = newTrigger()
        .withIdentity("trigger1", "group1")
        .startAt(runTime)
        .build();
    // Tell quartz to schedule the job using our trigger
    scheduler.scheduleJob(job, trigger);
    log.info(job.getKey() + " will run at: " + runTime);
  }
}
####################################################
public class HelloJob implements Job {
  @Inject
  private Logger log;
  @PersistenceContext
  private EntityManager entityManager;

  public HelloJob() {
  }

  public void execute(JobExecutionContext context) throws JobExecutionException {
    try {
      System.out.println("***Hello World! job: " + context.getJobDetail().getKey() + " executed at " + new Date());
      // Reschedule job to run a minute later
      Scheduler scheduler = context.getScheduler();
      Trigger t = context.getTrigger();
      SimpleTriggerImpl timpl = (SimpleTriggerImpl)t;
      Date runTime = evenMinuteDate(new Date());
      timpl.setNextFireTime(runTime);
      Trigger trigger = newTrigger()
        .withIdentity("trigger999", "group1")
        .startAt(runTime)
        .build();
      scheduler.rescheduleJob(t.getKey(), trigger);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
}
#########################################################
# seam.quartz.properties
org.quartz.scheduler.instanceName = QuartzScheduler00
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
org.quartz.jobStore.dataSource = QUARTZ
org.quartz.dataSource.QUARTZ.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.QUARTZ.URL = jdbc:mysql://localhost:3306/quartz
org.quartz.dataSource.QUARTZ.user = XXXXXXXXXX
org.quartz.dataSource.QUARTZ.password = XXXXXXXXXX
org.quartz.dataSource.QUARTZ.maxConnections = 5
#########################################################
jars used:


   83294 Defl:N 68416 18% 2011-07-18 16:01 9869bd05 WEB-INF/lib/seam-servlet-3.0.1-20110705.041111-5.jar
  204093 Defl:N 181695 11% 2011-07-07 12:54 ed9a2ff2 WEB-INF/lib/picketlink-idm-core-1.5.0.Alpha02.jar
   55966 Defl:N 44907 20% 2011-07-07 12:54 d81b0cc2 WEB-INF/lib/seam-international-3.0.0.Final.jar
  529064 Defl:N 490198 7% 2011-07-18 14:13 cb9a1aec WEB-INF/lib/quartz-2.0.1.jar
  445288 Defl:N 421452 5% 2011-07-12 15:16 3684c6c5 WEB-INF/lib/antlr-2.7.7.jar
 1627515 Defl:N 1470306 10% 2011-07-07 12:54 e71d8ef4 WEB-INF/lib/primefaces-3.0.M2.jar
  543011 Defl:N 456324 16% 2011-07-12 14:02 f915bdef WEB-INF/lib/joda-time-1.6.1.jar
  153633 Defl:N 139858 9% 2011-07-18 08:58 267a0105 WEB-INF/lib/seam-security-impl-3.0.1-20110624.041853-12.jar
 1567356 Defl:N 1418671 10% 2011-07-18 08:58 a2492dac WEB-INF/lib/richfaces-components-ui-4.1.0-20110718.130748-64.jar
  161455 Defl:N 122304 24% 2011-07-12 15:10 55c0bc93 WEB-INF/lib/knowledge-api-5.2.0.Final.jar
 1902276 Defl:N 1719856 10% 2011-07-12 15:10 91eaa4f6 WEB-INF/lib/drools-core-5.2.0.Final.jar
  136473 Defl:N 115134 16% 2011-07-18 08:58 a3cdeabd WEB-INF/lib/richfaces-core-api-4.1.0-20110718.130115-62.jar
   15071 Defl:N 12479 17% 2011-04-04 11:31 a1e02acb WEB-INF/lib/jta-1.1.jar
   85247 Defl:N 64105 25% 2011-07-18 08:58 70fc0fb5 WEB-INF/lib/richfaces-components-api-4.1.0-20110718.130748-64.jar
  897071 Defl:N 858346 4% 2011-07-12 15:16 a1635c95 WEB-INF/lib/antlr-3.3.jar
 1674737 Defl:N 1601274 4% 2011-07-07 12:55 b5de0b5f WEB-INF/lib/ecj-3.5.1.jar
    9753 Defl:N 8262 15% 2011-07-19 08:04 077eb18d WEB-INF/lib/slf4j-log4j12-1.6.1.jar
   15808 Defl:N 12066 24% 2011-07-07 12:54 cbb7cd31 WEB-INF/lib/sac-1.3.jar
   91494 Defl:N 81063 11% 2011-07-18 08:58 297819e6 WEB-INF/lib/seam-config-xml-3.0.1-20110511.043145-7.jar
  269014 Defl:N 245020 9% 2011-06-20 14:42 0d19c92a WEB-INF/lib/commons-net-3.0.1.jar
  787920 Defl:N 754098 4% 2011-07-18 16:27 68512c76 WEB-INF/lib/mysql-connector-java-5.1.17.jar
    7457 Defl:N 5972 20% 2011-07-18 14:13 cdac3310 WEB-INF/lib/quartz-jboss-2.0.1.jar
  481535 Defl:N 435562 10% 2011-07-19 08:04 39fbbb94 WEB-INF/lib/log4j-1.2.16.jar
  713433 Defl:N 657365 8% 2011-07-12 15:10 3e88a598 WEB-INF/lib/mvel2-2.1.0.drools2.jar
  253950 Defl:N 241386 5% 2011-05-12 11:27 f758d70e WEB-INF/lib/cssparser-0.9.5.jar
 1114265 Defl:N 987976 11% 2011-05-12 11:27 57d773f1 WEB-INF/lib/guava-r08.jar
   25496 Defl:N 22183 13% 2011-07-14 12:55 1a95d60b WEB-INF/lib/slf4j-api-1.6.1.jar
  119223 Defl:N 103690 13% 2011-07-18 08:58 fb1581b3 WEB-INF/lib/seam-persistence-3.0.1-20110711.040751-17.jar
  148627 Defl:N 138829 7% 2011-07-12 15:16 3e8b388d WEB-INF/lib/stringtemplate-3.2.1.jar
  397907 Defl:N 343667 14% 2011-07-07 12:54 7f34b227 WEB-INF/lib/seam-solder-3.0.0.Final.jar
  988489 Defl:N 902079 9% 2011-07-12 15:16 22c8db9d WEB-INF/lib/drools-compiler-5.2.0.Final.jar
   33716 Defl:N 23689 30% 2011-07-18 08:58 3a591eab WEB-INF/lib/seam-security-api-3.0.1-20110624.041806-12.jar
  163650 Defl:N 149460 9% 2011-07-12 15:16 e8acd98f WEB-INF/lib/antlr-runtime-3.3.jar
  608376 Defl:N 554163 9% 2011-07-14 12:55 4bb8e85b WEB-INF/lib/c3p0-0.9.1.1.jar
  415822 Defl:N 384150 8% 2011-07-18 08:58 8c572ac0 WEB-INF/lib/richfaces-core-impl-4.1.0-20110718.130115-61.jar
   23055 Defl:N 14694 36% 2011-07-07 12:54 5dfcdff2 WEB-INF/lib/picketlink-idm-spi-1.5.0.Alpha02.jar
   27714 Defl:N 18846 32% 2011-07-07 12:54 9718b1ca WEB-INF/lib/picketlink-idm-api-1.5.0.Alpha02.jar
   25717 Defl:N 20670 20% 2011-07-07 12:54 8473b909 WEB-INF/lib/picketlink-idm-common-1.5.0.Alpha02.jar





--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list