FW/1 - The Invisible Framework

Framework One and friends...

Change Log for FW/1 and Friends

This is documentation for the upcoming 4.1 release. For the current release, see this documentation.

The following changes are part of FW/1 4.1 and DI/1 1.3.0.


The 4.1 release is intended to be a minor maintenance release over 4.0.

Breaking Changes

  • 466 - Clojure integration is no longer provided out of the box, so that Lucee 5.x can be officially supported.


  • 467 - Session scope handling is now pluggable (but still uses session scope by default).
  • 460 - New framework option missingview can specify an action to take on a FW1.viewNotFound exception, rather than the default error action.
  • 452 - baseURL with trailing / no longer causes // to appear in URLs (when calling buildURL()).

Bug Fixes

  • 462 - Addresses a race condition around resolving transients under heavy load. Thanks to John Whish and jcberquist for chasing this down!
  • 458 - If an exception occurs during bean discovery, and an application’s error handling causes any DI/1 method to be invoked, it’s likely that discoverBeans() will be run a second time. Previously, that caused beans to be loaded twice and, if you had omitDirectoryAliases : true, you would get a new exception (that bean names were not unique) which masked the original exception. Now, if an exception occurs during initialization, bean discovery is considered complete, which should allow the original exception to propagate (even if your exception handling then crashes and burns!).
  • 456 - onError() now resets setLayout() so that if an error occurs in a subsystem, the error handling is rendered correctly, using only layouts from the error action.