## Quartz 1.5.2 Release Notes This release contains fixes to issues discovered in the 1.5.1 release, as well as a few new features. Many thanks in this release go to Jasper Josenberg and Aaron Craven. If you haven't already moved to 1.5.0, be sure to read the Quartz 1.5.0 release notes, as there were many significant changes in that release. See the changelog below for complete details of this release. ### Most Significant of New Features CronCalendar. New Calendar type, excludes dates based on cron expression. DailyCalendar. New Calendar type, excludes every X day. ### Key Changes Improvements to efficiency of clustering. ### Core API changes None (See the Quartz 1.5.0 release notes release notes, there's a lot there!). ### Migration Notes Necessary Code Changes
Version | Description | Old Code | New Code
--- | --- | --- | ---
1.4.x | no changes necessary |  |
1.5.0 | no changes necessary |  |
Necessary Database Changes (if using JDBC-JobStore)
Version | Description | update command(s)
--- | --- | ---
1.4.x | Add Blob column for JobDataMap to QRTZ_TRIGGERS table. This example update SQL is for Oracle. Make sure you use the appropriate data type for your database, which can be found in the tables_xxx.sql file for your db. You should leave the value of this new column NULL for existing rows. | alter table QRTZ_TRIGGERS add JOB_DATA BLOB
1.5.0 | no changes necessary |  |
### Changelog
OpenSymphony JIRA (31 issues)
T | Key | Summary
--- | --- | ---
| QUARTZ-117 | Remove CronExpression logic from CronTrigger
| QUARTZ-277 | Correct typo in NthIncludedDayTrigger javadoc
| QUARTZ-279 | A couple of Java 5 warnings
| QUARTZ-280 | Scheduler added to failed instance list every time
| QUARTZ-281 | DriverDelegate.updateSchedulerState() should also update RECOVERER
| QUARTZ-282 | Only lock STATE_ACCESS if there are failed instances to recover
| QUARTZ-286 | java.lang.StackOverflowError when calling to JobDataMap#getXXXValue (getLongValue, getIntValue, ...)
| QUARTZ-287 | PostgreSQL database scripts
| QUARTZ-290 | Throw ParseException for day-of-week sequence errors in CronTrigger.java
| QUARTZ-294 | StdJDBCDelegate.selectTriggersForJob() could return an array with null element.
| QUARTZ-298 | TriggerUtils.computeFireTimesBetween() should set start time on trigger
| QUARTZ-299 | Reentrant stateful jobs in 1.5.1 unlike in 1.5.0
| QUARTZ-303 | JBoss: JDNI always returns the same Scheduler when creating multiple QuartzService mbeans
| QUARTZ-304 | Clarify Scheduler.rescheduleJob() javadoc
| QUARTZ-307 | clarify docs - misfire instructions apply after standby-start cycle
| QUARTZ-308 | Small correction to the cron regular expression.
| QUARTZ-311 | DailyCalendar donation by Mike Funk
| QUARTZ-312 | Catch Throwable in JobRunShell
| QUARTZ-314 | CronExpression and CronCalendar
| QUARTZ-315 | EJB_ARG_TYPES_KEY value in JobDataMap must be Class[] in EJBInvokerJob
| QUARTZ-316 | Be more defensive in closing db connections
| QUARTZ-317 | CronTrigger.willFireOn() methods modify provided Calendar
| QUARTZ-319 | Schema documentation incorrect
| QUARTZ-324 | build.xml looking for osbuild.xml in wrong location
| QUARTZ-331 | Issues with cluster management refactoring
| QUARTZ-334 | Add serialVersionUID to CronCalendar
| QUARTZ-344 | Conditionally build quartz-weblogic.jar based on Weblogic class that is actually used
| QUARTZ-348 | Fix javadoc location for j2ee 1.3
| QUARTZ-349 | Create a quartz-all.jar that includes all other jars.
| QUARTZ-350 | Rename or move quartz-service.xml (in jboss subproject) so doesn't get loaded automatically by JBoss
| QUARTZ-351 | Include jboss/oracle/weblogic subproject source in javadoc