File Release Notes and Changelog
Notes:
Changes:
- Bug fixed: [1752641] cfcatch - cannot use both custom and any (applied patch by Tom Donovan).
- Bug fixed: [1774387] RandRange(): Error in generation (applied patch by Tom Donovan).
- Bug fixed: [1777346] BinaryDecode fails (corrected typo in FuncLib.BinrayDecode() as suggested by Tom Donovan).
- Bug fixed: [1768996] cfquery is not working inside cfcomponent (applied patch suggested by Tom Donovan to CfcContext.hasUDF() method).
- Bug fixed: [1774749] Directly invoked CFCs require lowercase function name. (Added toLowerCase() in SmithContext.addUDF(), this should solve the problem but makes methods in CfcContext case-insensitive).
- Bug fixed: cgiscope.script_name starts with two forward slash chars (CgiScope constructor).
- Bug fixed: Added support for query parameters of type CF_SQL_BLOB (in SmithQuery.setInParams() method). Attribute cfsqltype of cfqueryparam tag made case-insensitive (QueryParam constructor).
- Bug fixed: In SmithConversion.hash(), when converting digested bytes to a string of hex digits, order of low and high nibble was not correct.
- Bug fixed: if virtual query is initialized and then query with the same name is executed, smith throws exception with a message that data source hasn't been defined (added prevention of null pointer exception in case of several consecutive calls to SmithQuery.closeAll()).
- Bug fixed: added conversion of a problematic range of characters for db insert and update. Works only if db encoding supports these problematic characters (in SmithQuery, added: encode() method, updated: execute()). Added special way of caching for CHAR, LONGVARCHAR and VARCHAR fields from database (in SmithStorage.cacheDbRecords() method).
- Bug fixed: functions DateFormat and TimeFormat throw exception if Date or Time argument is null (in SmithDateTime, added prevention of null pointer exception in DateFormat() and TimeFormat() methods).
- Bug fixed: catch block inside cfscript does not catch IndexOutOfBoundsException (IndexOutOfBoundsException caught in SmithArray.getElement(), wrapped in a ExpressionException and rethrown).
- Bug fixed: when servlet container loses connection with client and thus cannot flush the response, it doesn't get to close db connections used during the request (in SmithServlet, added try/catch/finally at the end of serviceRequest() to ensure db connections are closed).
- Exception stack trace is transformed into a list which is now shown in debug section (in TryCatchTagImpl and in SmithServlet.logError(), exception message replaced with a complete stack trace).
- Added setting of db connection checkout timeout parameter in c3p0's pooled data source (DBSourceSettings, DataSourcesActionHandler, DbManager, InstanceConfig, data.jsp).
- Improved recognition of CFML source file encoding. In Server Settings section of smith admin, added check box to enable character encoding guessing and input of a custom out-of-memory page (GuessEncoding.jar added to classpath, updated SmithTranslator.resolveEncodingFromFile() to use GuessEncoding.jar, MemoryResourcesUtil, ServerSettings, ServerActionHandler, server.jsp).
- Added SmithList.ListSort() with two arguments; added SmithList.ListTrim().
- Added prevention of null pointer exception UpdateTagImpl.
- Added static final long serialVersionUID to all serializable classes. All source files auto-indented (using default settings of eclipse source format).