Quartz 1.6.1 Release Notes

This release contains many bug fixes and small improvements to the Quartz 1.6.0 release.

See the changelog below for complete details of this release.

Key Changes

  • Dozens of bug fixes
  • Improvements to threading and efficiency in several areas of the codebase.

Core API changes

  • None

Migration Notes

Necessary Code Changes

Version Description Old Code New Code
1.6.0 no changes necessary    

Necessary Database Changes (if using JDBC-JobStore)

Version Description update command(s)
1.6.0 no changes necessary  

Changelog

OpenSymphony JIRA (94 issues)
T Key Summary
Bug QUARTZ-35 Noisy stack-trace during shutdown
Bug QUARTZ-340 In JobRunShell.run() notifyJobStoreJobComplete exception always returns
Task QUARTZ-372 Clarify Scheduler.getCurrentlyExecutingJobs()
Improvement QUARTZ-398 Upgrade to Commons-Pool 1.3
Bug QUARTZ-419 CRON_EXPRESSION database field size too small
Task QUARTZ-451 Upgrade to new versions of dependencies
Bug QUARTZ-465 A misfire that completes a Trigger does not notify SchedulerListener.triggerFinalized()
Bug QUARTZ-482 Missing Maven POMs
Bug QUARTZ-488 JobStoreCMT isTxIsolationLevelReadCommitted property sets TRANSACTION_READ_UNCOMMITTED
Bug QUARTZ-489 HSQLDB booleans broken for version 1.7.2+
Bug QUARTZ-513 EOFException being throw in StdJDBCDelegate.getObjectFromBlob for jobs with no jobdata
Bug QUARTZ-516 Errors in "tables-informix.sql" script file.
Bug QUARTZ-521 (reopen) RAMJobStore Trigger deletion infinite loop in acquireNextTrigger
Bug QUARTZ-522 db_tables/tables_informix.sql has systax errors - see updated version in description
Task QUARTZ-525 More informations about potential Oracle DB lock
Bug QUARTZ-533 Bug when using '/' character in day-of-month expression in CronExpression/CronTrigger
Bug QUARTZ-536 Initialization resource files are opened but never closed
Bug QUARTZ-538 WebLogicOracleDelegate throws java.lang.NoSuchMethodException: weblogic.jdbc.base.BaseBlob.putBytes(long, [B)
Bug QUARTZ-539 Bugs in JMS SendQueueMessageJob
Bug QUARTZ-543 updateAfterMisfire() not invoked by StdScheduler
Bug QUARTZ-545 org.quartz.ee.servlet.QuartzInitializerListener javadoc has misleading example
Bug QUARTZ-547 Daemon thread property specified in the documentation is incorrect.
Bug QUARTZ-549 NthIncludedDayTriggerTest won't pass
Bug QUARTZ-550 readme.txt lists incorrect Ant version
Bug QUARTZ-551 Build problems with trunk
Bug QUARTZ-553 JobDetail.clone() does not preserve the order of job listeners
Bug QUARTZ-554 Trigger.getNextFireTime() returns date in the past
Bug QUARTZ-555 SimpleSemaphore.java contains concurrency bug that can cause
Bug QUARTZ-557 Cron/Simple Trigger may return a firing time not included in the calender
Bug QUARTZ-558 NullPointerException cloning CronTrigger without cron expression
Bug QUARTZ-559 Example6 BadJob1.java calls incorrect function
Bug QUARTZ-560 Trigger with empty JobDataMap can't be loaded in Derby and HSQLDB
Bug QUARTZ-562 Remove dependency on jta.jar for non-J2EE environments
Bug QUARTZ-563 RAMJobStore.triggerFired() fails to return null in some cases
Bug QUARTZ-564 misspelled class name
Bug QUARTZ-565 Example's job.xml has error in quartz 1.6.0
Bug QUARTZ-566 MSSQLDelegate.getObjectFromBlob throws org.quartz.JobPersistenceException: Couldn't obtain triggers for job: null [See nested exception: java.io.EOFException]
Bug QUARTZ-568 jms.jar corrupt
Bug QUARTZ-571 CronExpression is not building the expression correctly after being deserialized
Bug QUARTZ-573 Misleading Javadoc for org.quartz.Trigger getPreviousFireTime function.
Bug QUARTZ-574 CronExpression.storeExpressionVals miscalculates month number for invalid month names
Bug QUARTZ-577 JobInitializationPlugin can't find quartz-jobs.xml within a JAR file
Bug QUARTZ-579 regression on timezone support of crontrigger
Bug QUARTZ-580 NthIncludedDayTrigger.getFireAtTime() method result does not match the result that is documented in Javadoc.
Bug QUARTZ-581 NullPointerException in RAMJobStore.applyMisfire
Bug QUARTZ-582 "Stuck ACQUIRED triggers" / race condition with quartz
Task QUARTZ-586 Please emphasize how to shutdown Quartz
Bug QUARTZ-588 Spelling errors in JavaDoc for SimpleTrigger
Bug QUARTZ-589 Method AnnualCalendar.setDayExcluded() seems to ignore the second parameter and always exclude the specified day.
Bug QUARTZ-590 Implementation of AnnualCalendar.setDaysExcluded() does not protect the parameter days against setting it to null.
Improvement QUARTZ-591 Making methods setTimeRange() public in org.quartz.impl.calendar.DailyCalendar
Bug QUARTZ-595 When user Cron Expression 0 0 19 LW * ?, and Australia/Sydney timezone local computer is GMT, the next firetime will always be the current day when the last day of the month is on a weekend.
Bug QUARTZ-599 Syntax mistakes in Informix db create scripts
Bug QUARTZ-600 Trigger storing change breaks things for Spring's custom triggers
Bug QUARTZ-601 CronExpression over Midnight causes exception
Bug QUARTZ-606 RamJobStore.storeTrigger incorrectly removes JobDetail when replacing trigger
Improvement QUARTZ-607 log job name when storing job or storing trigger for job fails
Improvement QUARTZ-619 Update applicationContext to Spring 2.0
Bug QUARTZ-621 incorrect results from CronExpression.isValidExpression()
Bug QUARTZ-625 NullPointer in org.quartz.utils.Pair.hashCode() method
Bug QUARTZ-627 QuartzScheduler.scheduleJob does not properly handle case where trigger job name equals the job name, but job group is null.
Bug QUARTZ-632 CLONE -Scheduling change causes a paused/blocked scheduler to do unnecessary trigger release
Bug QUARTZ-636 MonthlyCalendar getNextIncludedTime: infinite loop if included date > 7
Bug QUARTZ-638 QuartzSchedulerThread.signaled should be marked with the volatile modifier or should be an AtomicBoolean
Bug QUARTZ-639 JobDataMap getIntValue returns long
Bug QUARTZ-640 The Cron Expression do not support day of week list with "L" in it.
Bug QUARTZ-641 Invalid run triggers with startTime older than about 248 days
Bug QUARTZ-644 examples do not run in Windows when there is space in the classpath
Bug QUARTZ-645 Frequent deadlock on QRTZ_TRIGGERS table
Bug QUARTZ-646 Job Scheduler functionality using Quartz accumulates lots of records into its related tables in DB.
Bug QUARTZ-649 deadlock and out of memory problems
Bug QUARTZ-650 SimpleTrigger.computeFirstFireTime() method can get into infinite loop
Bug QUARTZ-651 Clarifying the documentation for misfire instructions
Improvement QUARTZ-654 sybase dbTables script
Bug QUARTZ-656 The query SELECT_NEXT_TRIGGER_TO_ACQUIRE is incorrect for certain SQL servers
Bug QUARTZ-657 Deadlock in RAMJobStore
New Feature QUARTZ-658 Introduce mechanism for delaying the starttup of the scheduler
Bug QUARTZ-659 RamJobStore does not remember paused job groups
Bug QUARTZ-660 Build failure in en_GB.UTF-8 locale in AnnualCalendarTest
Bug QUARTZ-661 CLONE -"Stuck ACQUIRED triggers" / race condition with quartz
Bug QUARTZ-662 NullPointerException in NthIncludedDayTrigger.getFinalFireTime()
Bug QUARTZ-665 Null pointer exception in Trigger.equals()
Bug QUARTZ-668 Threading issue around SimpleThreadPool.runInThread...
Bug QUARTZ-669 Spinning-workaround in QuartzSchedulerThread.run() is expensive (cpu-wise) on multi-core systems
Bug QUARTZ-675 FileScanJob can not handle spaces or umlauts in directory names
Bug QUARTZ-678 CronTrigger may return a firing time not included in the calender (based on QUARTZ-557)
Bug QUARTZ-685 JobDetail.equals() broken in svn
New Feature QUARTZ-686 New config property: org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer
Bug QUARTZ-688 CronTrigger not executes StatefulJob as expected
Bug QUARTZ-691 Persistent trigger fire problem with future startdates
Bug QUARTZ-692 NativeJob does not handle Linux (Unix?) shell script parameters properly
Bug QUARTZ-695 MySQL script fails on utf8 charset database
Bug QUARTZ-696 Unable to schedule one time triggers/jobs as side effect of running job while Scheduler is shutting down
Bug QUARTZ-703 JobStoreTX coudn't store trigger, because of NullPointerException on trigger insertion.