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