Helma 1.6.3 Changelog
The Helma 1.6.3 release contains numerous bug fixes and many minor improvements, such as support for secure HttpOnly session cookies, logging improvements, several changes to the way file paths to different resources are resolved, and Helma is now again backwards compatible with Java 1.4, to mention just a few.
Our bugzilla has a list of bugs fixed in Helma 1.6.3.
- The totalUploadLimit value is now also applied to ordinary form post requests.
- Now uses LinkedHashMap for property updates to preserve insertion order.
- Running Helma apps through helma.servlet.StandaloneServletClient within a servlet container was made easier by avoiding a direct dependency of helma.main.Server on Jetty.
- Relative repository paths now resolve relative to Helma home directory, fixing bug 639.
- Introduced hopdir servlet parameter to be able to set the helma directory.
- The location of db.properties is now customizable using the dbPropFile server property, fixing bug 640
- Fixed bug with closed database connections in very long running requests by making sure connections are re-checked every 10 seconds.
- Changed HopObject.getOrderedView() to return a transient HopObject instead of a ListViewWrapper.
- Fixed bug in request handling when incoming requests are attached to an existing response and the response is generated by directly accessing the res.servletResponse HttpServletResponse instance.
- Go back to Java 1.4 compatibility. The few generics uses aren't worth it to require Java 1.5.
- Made sub-properties updateable.
- Logging improvements, such as an additional log message when a request starts evaluating, making commit log messages look nicer and easier to parse, and improved thread naming including thread ids in helma log messages.
- Unified macro error handling, no longer dumping stack traces for macro errors.
- Ampersand is no longer encoded as entity when encountered in macro tags.
- Added support for secure and HttpOnly session cookies, with HttpOnly being enabled by default. The features are controlled through the httpOnlySessionCookie and secureSessionCookie app properties. We now compose and set the session cookie ourselves as this is the only reliable way to do it in a cross-servlet-container compatible way and without adding dependencies to the servlet container.
- Fixed a problem with the code evaluation order of repositories added via app.addRepository().
- Fixed app.xmlrpcCount to be increased for "new style" XML-RPC requests served by Jetty, fixing bug 629.
- Changed code to not track unset() on non-persitable properties, fixing bug 633.
- Fixed serialization for transient HopObjects.
- Synchronize more methods in TypeManager as well as app.addRepository() to avoid memory race conditions.
- Made checkXmlRpc work with content-types containing a charset subheader, fixing bug 628.
- Continue parsing macro tags even if it is a comment. This is the only way we can correctly catch embedded macros. Fixes bug 588.
- Only resolve direct prototype matches in parent chain, fixing bug 617.