Release Notes

3.0 - March 2013

  • fixed CFMODULE dynamic bug for NAME="" attribute
  • added cron.1min to cron functionality
  • fixed the onApplicationStart() loading update
  • fixed exception handling edge case
  • OnSessionStart()/OnApplicationStart() update
  • Database Connection Pooling Refactor
    • Reduced memory overhead
    • added function DataSourceActivePoolStats()
    • per-page pooling feature added
    • connectionperpage flag added to query XML block
    • added connectionperpage to DataSourceCreate()
  • added support for mongouri schemes in MongoRegister()
  • fixed #506: MongoDB's MongoDeregister() and MongoRegister() problem
  • Updated mongo-2.10.1.jar [/WEB-INF/lib/ updated]
  • DeserializeJSon() strictmode supports deep query detection
  • fixed CFFILE UPLOAD/FileUpload() error when destination is full path to file
  • fixed XmlParse() documentation bug
  • fixed AmazonSQS custom regions [/WEB-INF/lib/ updated]
  • added: false feature
  • fixed #498: IsJSON throws exception on complex datatypes
  • Support for URL in FileRead()
  • fixed #502: ImageNew can not read an URL as specified by function
  • Support for multi-regions in Amazon S3, SQS and SimpleDB
  • Removed AmazonSQSSetHost() function
  • Updated MongoCollectionIndexEnsure() function
  • Removed MongoCollectionIndexCreate() deprecated API call
  • Updated MongoGridFSGet() to support inline returns
  • Memcached set() error resolved if too big
  • Trim column names in http() for CSV reading
  • Added MongoCollectionAggregate()
  • Updated mongo.jar [/WEB-INF/lib/ updated]
  • MongoSessionManager more tolerant of outages
  • fixed #471: output="yes" [/WEB-INF/lib/ updated]
  • FTP functions added [/WEB-INF/lib/ updated]
    • FtpClose()
    • FtpOpen()
    • FtpCmd()
    • FtpCreateDir()
    • FtpExists()
    • FtpExistsDir()
    • FtpExistsFile()
    • FtpGetCurrentDir()
    • FtpGetCurrentUrl()
    • FtpGetFile()
    • FtpList()
    • FtpPutFile()
    • FtpRemove()
    • FtpRemoveDir()
    • FtpRename()
    • FtpSetCurrentDir()
    • FtpSite()
  • fixed bug when passing a CFFUNCTION argument value as an argument to a constructor
  • fixed #485: Unexpected behaviour from structKeyExists if a null value from database is involved
  • fixed the session loading order
  • http() returns the structure instead of a boolean
  • added QueryEach() / {}.each()
  • fixed #373: added support for CLIENTCERT/CLIENTCERTPASSWORD in CFHTTP/Http()
  • fixed support for component return type in cfscript declared function
  • automatically treat application/json as string in CFHTTP result
  • fixed bug recently introduced in 4.2.1 CFHTTP gzip support
  • fixed YSOD on bad charset value in CFHTTP. Blank values are now ignored.
  • added Http() function
  • upgraded to 4.2.1 of HttpComponents for CFHTTP
  • added StructEach() / StructFilter() / {}.each()
  • added ArrayEach() / ArrayFilter() / ArrayFindAll() / [].each()
  • added <CFLOOP ARRAY="" ITEM="" INDEX=""> combination support
  • GetFileInfo() throws exception on missing file
  • fixed MongoDB embedded $regex
  • added AttributeCollection to <CFSCHEDULE>
  • added: "for ( row in query )" cfscript looping
  • fixed #475: FTP: folder names with spaces are not listed properly
  • added defaultlist attribute to <CFQUERYPARAM> / QueryRun / QueryOfQueryRun()
  • fixed <CFSEARCH> to use English analyzer when language is English
  • fixed combining of tokens in <CFINDEX> custom body
  • component{} script support
  • fixed #483: Adding support for customtagpaths to the <CFAPPLICATION> tag
  • fixed encoding of Mongo _id
  • fixed #482: returnformat='json'
  • Collapsing content in the dump/error pages
  • added the 'default' caching engine for CacheGet/CachePut
  • fixed #481: FORM scope is empty in cfc used as rest with multiform data
  • Updated plugins SalesForce/Vision
  • Updated CFLOCK manual
  • Fixed <CFFUNCTION JSONCASE=""> bug
  • Fixed Mongo Date Conversion from local to UTC
  • Fixed MongoQuery Conversion
  • Cache CFFUNCTION fixed
  • OpenBD Archived introduced
    • MappingCreateArchive()
    • MappingAdd()
  • this.sessionstorage enabled to use Mongo/Memcache
  • Cache Functions Refactored
    • Added Storage Engines
    • Support for CFFUNCTION caching
    • Mongo / Memcache / CouchBase support
  • CFMLBug monitoring
  • SalesForce Plugin added to core [/WEB-INF/lib/ updated]
  • JSON Encoding Defaults
    • Set how dates and case are defaults via bluedragon.xml
    • Control case via CFFUNCTION for remote calls
    • Control it through the client side variables
  • Active threads named with Request URI
  • Updated MongoDB functions:
    • fixed parameter name in MongoIsValid()
    • Return _id for the MongoCollectionInsert()
    • Auto close of connections after idle period
  • fixed datasource security detection
  • Updated SpreadSheetQueryRead() / SpreadSheetGetCellValue() evaluates formula's
  • fixed #461: [COMPAT] AttributeCollection does not work with CFLAP
  • fixed #409: [COMPAT] GetComponentMetaData function not implemented
  • fixed #470: CFDIRECTORY doesn't honour SORT attribute
  • fixed #471: output="yes" no longer evaluates to output="true" for onRequest
  • added support for ternary operator in cfscript
  • fixed #460: Allow vars in loops in cfscript
  • fixed #467: ArraySlice index error
  • updated Apache Compress removing from Tika [/WEB-INF/lib/ updates]
  • removed overhead associated with FileUpload()
  • added docx xlsx pptx odt to CFINDEX
  • fixed CFINDEX query attribute
  • fixed CFFTP big size
  • fixed CFFUNCTION default output
  • fixed ScopeMisMatch after cfscript exception
  • upgraded Apache Lucene to 3.6.0 [/WEB-INF/lib/ updates]
  • search WORD/EXCEL fix [/WEB-INF/lib/ updates]
  • fixed query cache name collision
  • Set the Locale to UK for Cookie setting
  • Increased cookie NEVER to 20 years
  • updated JSoup1.6.2 [/WEB-INF/lib/ updated]
  • fixed datasource connection pooling for maxConnections
  • updated the CFAJAXPROXY to only encode params it needs to
  • fixed NPE when TYPE is missing from cfscript param statement
  • fix #454: <input type=checkbox> setForm()
  • fix #454: <select> Option tag not sending 1 with setForm()
  • fixed CFSCRIPT language=java error
  • added AmazonS3Read() overwrite attribute
  • added MongoDB GridFS functions
    • MongoGridFSSave()
    • MongoGridFSRemove()
    • MongoGridFSFindOne()
    • MongoGridFSFind()
    • MongoGridFSGet()
  • CFVIDEOPLAYER upgraded FlowPlayer to 3.2.8
  • [Desktop] Fixed 'Export to WAR' feature
  • upgraded Mongo.jar [/WEB-INF/lib/ updated]
  • fixed: CFINDEX query type can take in both string and query object
  • fixed: CFDIRECTORY recurse=true; directory + name paths
  • added: delimiter to CreateUUID()
  • updated aw20org.jar [/WEB-INF/lib/ updated]
  • added serialization support for java
  • fixed subtle try/catch exception edge case
  • fixed MongoCollectionIndexCreate() unique bug
  • IpGetMXRecords() removed trailing period
  • added attributes to HtmlCodeFormat()
  • fixed #435: CFDIRECTORY with listinfo only has the file names and leaves off the relative path
  • fixed DataSource server validation; added "openbdnocheck" to URL string
  • [Desktop] Updates
    • Added ContextPath
    • Auto Startup on Windows flag
    • Auto Server Startup on GUI startup
    • JVM Memory updated
    • Perm Gen Memory Live Statistics
    • Flag to leave target WEB-INF/ untouched
    • Settings persisted
    • Minimize to System Tray
    • WebApp root history
    • Start-Server Console tab now in focus
    • Small UI bugs ironed out
  • updated CFAJAXPROXY to correct CFC path issue
  • fixed #436: Windows install serviceDelete error
  • fixed #433: Default log file location
  • fixed #430: GetNumericdate() throws error
  • fixed #431: automatically trim whitespace from columnnames
  • fixed #431: missing number fields in spreadsheet after SpreadsheetRemoveColumn
  • new Zip/ZipList/Unzip functions
  • CFZIP now leverages Apache Compress library fixing issues with foreign characters
  • fixed #429: ValueList function doesn't work on queries created by CFDIRECTORY with listinfo="Name"
  • fixed #428: cfquery.currentRow is default 0
  • fixed #425: ImagePaste() returns error: attribute passed in was not of type image
  • fixed #416: cfscript, language=javascript, internal server error
  • fixed #412: CFQuery fails to validate JDBC hoststring where multiple hosts are specified
  • added Bouncy Castle distribution [/WEB-INF/lib/ updated]
  • DebuggerPlugin respects the list to control access
  • removed the need for file:// in the plugin jar list
  • updated log4j JAR [/WEB-INF/lib/ updated]
  • fixed #263: Bug with variablename validation with CFPARAM and ISVALID()
  • fixed #407: Single instance (custom OpenBD install) fails to pick up plugins
  • fixed #405: The tag cfhtmlhead throws a bad template error

2.0.2 - January 2012

  • fixed #202: Web Services error on Single-instance installations
  • added StructListNew()
  • fixed #403: Default params in CFC methods in CFSCRIPT loses values
  • fixed #245: unnamed function argument not found
  • fixed #52: support for typed array TYPE in CFARGUMENT
  • added function SocketConnect() / SocketServerStart() / SocketServerStop() / SocketServerGetClients()
  • added function SpreadSheetQueryRead()/SpreadSheetQueryWrite()
  • added function GetApplicationMetaData()
  • added support for 'this.datasource' in Application.cfc / CFAPPLICATION
  • updated CFHTTP file/path downloads straight to file, using no memory
  • added "runonce" flag to CFINCLUDE/RenderInclude()
  • fixed SpreadSheetNew() XLSX [/WEB-INF/lib/ updated]
  • updated AmazonRegisterDataSource() to support multiple regions
  • added QueryAddRow() function to turn a struct into a row
  • fixed QueryRun() list=true bug
  • fixed QuotedValue() list bug
  • fixed 399: CFCOOKIE does not support argument collection
  • fixed 105: Application.cfc, this.customTagPaths supported

2.0.1 - December 2011

  • ImageResize tweaked for better scaling results
  • rewrote the SearchEngineFriendlyURLFilter
  • updated OpenBD Desktop to remove core plugins
  • fixed #397: OpenBD Desktop Shadow Folder not working as expected
  • updated Ready2Run Jetty for Windows Service
  • cfinvoke supports attributeCollection
  • fixed CFDIRECTORY/DirectoryList() to match other engines
  • remove run-once scheduled tasks from schedule engine
  • upgraded to Apache Lucene 3.5 [/WEB-INF/lib/ updated]
  • fixed CFINDEX atttributecollection bug
  • added defaultreturn param for ValueList()/QuotedValueList()
  • fixed #368: Enabled SearchEngineFriendlyURLFilter by default
  • fixed #386: SearchEngineFriendlyURLFilter fails on templates with multiple dots
  • fixed #390: CFC method with returntype="void" doesn't throw error when method returns
  • fixed #391: 2.0 Get Directory From Path Error
  • fixed #393: CFMAIL TAG difference in behaviour with attributes

2.0 - November 2011

  • fixed #382: CFLOOP missing CHARSET attribute
  • added MongoXXX() integration to MongoDB
  • CronTagPlugin promoted to core engine
  • LoginPlugin promoted to core engine [/WEB-INF/lib/ updated]
  • upgraded MySQL JAR 5.1.18
  • added DirectoryDelete() with recurse
  • DirectoryList() matching CFDIRECTORY for function
  • AmazonS3Read/AmazonS3Write can read/write objects as well as file
  • fixed FileMove() to take in file and/or directory
  • added CFSCRIPT language='javascript'
  • fixed isArray() for inner XML documents
  • fixed exception handling [/WEB-INF/lib/openbdplugin-debugger.jar updated]
  • fixed #36: CFSCHEDULE action=pause/resume not supported
  • fixed #175: Feature Request: Ability to pause scheduler so no scheduled tasks run
  • fixed #381: GetDirectoryfrompath() removing trail slash
  • upgraded YUI Compressor JAR
  • CFAJAXPROXY now supports complex object passing
  • fixed CFHTTP gzip encoding
  • CFSMTP plugin integrated to core branch [/WEB-INF/lib/ updated]
  • SpreadSheet plugin integrated to core branch [/WEB-INF/lib/ updated]
  • fixed #376: Update PDFbox to support PDF 1.3+
  • refactored internal rendering engine
  • fixed #379: Collections not being registered properly anymore
  • improved CFLOG; recreate missing directories/files
  • improved CFAJAXPROXY handling
  • fixed CFSCRIPT exception handling [edge case]
  • fixed #313: javacast to String[] for Object parameter
  • fixed npe when array index is non-existant variable
  • fixed ImageRead()/ImageWrite() functions
  • fixed CFSTYLESHEET/CFJAVASCRIPT recreate missing directory
  • updated fileXXX() functions to support native
  • fixed CollectionFactory on startup for Search
  • added: flush() method for CFSCRIPT usage
  • fixed #377: Single quotes aren't escaped when using functions inside CFQUERY
  • upgraded Apache Lucene to 3.4.0
  • Added extra attributes to CollectionSearch()
  • better handling for invalid emails in CFMAIL
  • added #203: Feature Request: DateTimeFormat()
  • fixed #229: Added CollectionStatus() for a single collection
  • fixed #375: Add statusCode attribute to CFLOCATION
  • added GetHttpStatusLabel() function
  • added toBoolean() function
  • added QueryRenameColumn() function
  • fixed Lucene search query, reset it back to 0
  • Fixed CollectionCreate()/CFINDEX on Linux
  • fixed ysod on bad function parameter count
  • Search Refactored
    • performance/memory improvements
    • added CollectionCreate()
    • added CollectionList()
    • added CollectionDelete()
    • added CollectionListCategory()
    • added CollectionIndexCustom()
    • added CollectionIndexPath()
    • added CollectionIndexFile()
    • added CollectionIndexWeb()
    • added CollectionIndexDelete()
    • added CollectionIndexPurge()
    • added support for indexing: MP3/JPG/TIFF files
    • added support for limitless custom attributes
  • fixed whitespace tab issue in JSON
  • upgraded Jackson JSON parser to 1.8.3
  • fixed #365: UDFs when copied into other scopes do not work without named arguments
  • upgraded Apache Lucene to 3.3.0
  • added fixEOL() function
  • added JSONDATE encoding support
    • CFFUNCTION added for JSONDATE="LONG|CFML|JSON|HTTP"
    • SerializeJSON() new attribute to support encoding
  • added named-param support for throw()
  • fixed #364: Inconsistent pass by value behaviour with arrays
  • fixed #313: javacast support for string[]
  • fixed #146: javacast support for java classes
  • fixed #40: javacast support for BigDecimal, short, char and byte types
  • added #363: Add GetMailUndeliveredDirectory()
  • added 'catchemail' to outgoing email to redirect all mail to a mailbox
  • added flag to stop bluedragon.xml from updating
  • fixed #315: Enhancement: CFJAVASCRIPT support a PATH attribute
  • added html() function
  • refactored string functions
  • fixed #360: CFSTYLESHEET hash clash or incorrect hash wrong files to load
  • fixed #361: Bug with multiple Application.cfc files; same application name
  • added AmazonSQSSetHost()
  • added AmazonSDBGetAttributes() support for consistentRead
  • fixed #359: ImageDrawText() has incorrect code for new Font(fontstr,size,style)
  • added #347: CFDBInfo support
  • added StructEquals() function
  • added #222: Add support for fall through on tag based CFSWITCH
  • fixed #348: Function with returntype="void" and output="true" has a WDDX packet not the output
  • fixed #355: isValid
  • invalid type 'component' specified
  • fixed #351: Syntax error for chained functions with new Component
  • fixed #353: ArgumentCollection doesn't work for variables as functions
  • fixed #354: Cannot modify array returned from string.split()
  • fixed #352: "local variable [varname] cannot be declared twice"
  • fixed TAB issue in DeserializeJSon()
  • [GAE] Fixed the GoogleFileIO problem
  • added format= support to ImageGetBlob()
  • added tiff support to ImageRead()
  • fixed bug with ImageCrop()
  • fixed #284: additional fix when using implicit struct/arrays
  • [GAE] #312: googleQuery where clause with single character
  • fixed #303: CreateTime() uses incorrect default date
  • added #296: <CFPROCPARAM list="true|false" />
  • updated DeserializeJSON()
    • switched to Jackson JSON parsing library
    • added 'file' parameter to function
  • [Desktop] Allow for web.xml to be in the shadow folder
  • reduced memory footprint on cfSession
  • fixed #284: CFLOOP list reference issue
  • fixed #339: Internal Server Error in Debug output
  • fixed #344: Error in SpreadsheetFormatColumn(s)
  • fixed SpreadSheetAddInfo() function on blank XLS files
  • fixed #343: Problem in SpreadSheetInfo() function
  • fixed #342: Compatibility issue : generateSecretKey()
  • fixed #340: VFS functions
  • Case sensitive for s3://
  • added <div id='openbddebug'> to Debugger output
  • fixed #337: CFDIRECTORY ACTION is case sensitive
  • fixed #338: DateConvert() displays 24 instead of 00 for midnight
  • Amazon Updates
    • added checked S3 connection and FileNotFound Exception
    • update amazon S3 classes avoid using generic Exception
    • encode and fix signed url
  • fixed #246: REEscape update
  • fixed #302: CFFORM preserveData only preserves type="text"
  • fixed #260: Update ParseDatetime() to handle HTTP time strings
  • fixed #155: Allow ability to loop over Java byte array
  • fixed #335: XmlValidate() outputs the error message, line and column numbers in different order
  • [GAE] Fixed the FileUpload()
  • fixed #331: FileRead function not work with files opened in binary mode
  • [Desktop] Bundled the official plugins; optional on/off
  • [Desktop] Added the ability to customize extensions
  • [Desktop] Bundled the manual and admin console
  • fixed #325: XSLT processor throws error
  • added Logger() function
  • fixed #329: Misspelled Image Function: ImageSetantialisaing()
  • fixed DeSerializeJSon() on blank strings
  • fixed #272 enhancement: add linedelimiter parameter to Csvwrite()
  • fixed directorylist() bug with s3 url on linux
  • updated documentation for CFCACHECONTENT
  • fixed #320: Pass by ref on Xpath no longer functions
  • added 'customdata' to the CFMAIL callback
  • fixed looping around the dates
  • [GAE] added cfcomponent.cfc to the WAR
  • [STD] Updated the MySQL driver to 5,1,15
  • [Desktop] Added in Google Proxy option
  • [GAE] fixed GoogleKey()
  • added CFMAIL callback for onMailSend()/onMailFail()
  • [STD] added function: getMailSpoolDirectory()
  • [Desktop] create default index.cfm for GAE deployment
  • [GAE] fixed remote CFC processing
  • [Desktop] fixed #317: Missing servlet mappings in WEB-XML
  • fixed #139: TagContext order in cfcatch is in opposite direction
  • fixed XALAN memory leak for XmlSearch()
  • added support for PRIORITY attribute in CFMAIL
  • added new ReEscape function
  • fixed #292: added CFINTERFACE support
  • fixed #186: ParseDateTime support for unix style date/time
  • fixed #294: LSisDate performance
  • fixed #307: BinaryEncode & BinaryDecode with Hex or UU algorithm
  • fixed #188: CFMX incompatability
  • session timeouts
  • fixed #286: DeSerializeJSON does not handle null values correctly.
  • fixed #293: Using SetProfilestring with a file not yet created fails
  • fixed #288: CFCOOKIE Invalid expires date format with non english locale
  • fixed #141: CFIMAGE Fails Silently When srcfile Doesn't Exist
  • fixed #132: CFIMAGE nameconflict="makeunique" not working
  • fixed #304: CFPOP auto generation of ATTACHMENTPATH directory
  • fixed #306: CFPOP GENERATEUNIQUEFILENAMES attribute support for booleans
  • src maintenance for Google App Engine Merge
  • support for CFZIP action=ZIP/UNZIP and FILE pseudonyms
  • fixed #298: returntype for CFTRANSACTION
  • fixed #297: bug in compare/comparenocase
  • fixed CFHTTPPARAM
  • fixed deserializejson when input is a string
  • fixed onSessionEnd missing application scope
  • added 'attributeCollection' support to core functions
  • changed 'image' to 'name' in ImageXX() functions
  • added flag to keep function/cffunction vars scoped
  • fixed AmazonGetSignedURL() call
  • fixed #290: cfscript switch support of unquoted negative numbers
  • fixed potential NPE introduced in extended function support
  • added Image function support
    • ImageNew()
    • ImageRead()
    • ImageWrite()
    • ImageWriteBase64()
    • ImageReadBase64()
    • IsImage()
    • ImageGetExifMetaData()
    • ImageGetExitTag()
    • ImageInfo()
    • ImageGetWidth()
    • ImageGetHeight()
    • ImageGetBufferedImage()
    • ImageBlob()
    • ImageCrop()
    • ImageBlur()
    • ImageSharpen()
    • ImageNegative()
    • ImageGrayScale()
    • ImageFlip()
    • ImagePaste()
    • ImageResize()
    • ImageRotate()
    • ImageAddBorder()
    • ImageClearRect()
    • ImageDrawRect()
    • ImageDrawRoundRect()
    • ImageDrawArc()
    • ImageDrawBeveledRect()
    • ImageDrawLine()
    • ImageDrawLines()
    • ImageDrawPoint()
    • ImageDrawOval()
    • ImageDrawText()
    • ImageDrawingColor()
    • ImageSetBackgroundColor()
    • ImageSetAntialisasing()
    • ImageXORDrawingMode()
    • ImageReflection()
    • ImageContrastBrightness()
    • toDataURI()
  • added support for PUBDATE in CFFEED
  • extended function support in CFSCRIPT
  • Amazon Updates
    • added AmazonS3GetInfo()
    • updated AmazonS3List() to return sub-directories
    • updated AmazonS3Write() to support meta-data and storage class
  • strict mode added for ArrayPassingByReference flag
  • CFSCRIPT::java added export of methods
  • CFSCRIPT::java added import support
  • added attributeCollection/docs support for:
    • CFABORT
    • CFASSOCIATE
    • CFCHARTDATA
    • CFCOL
    • CFCONTENT
    • CFDIRECTORY
    • CFDUMP
    • CFERROR
    • CFEXECUTE
    • CFFILE
    • CFFLUSH
    • CFHEADER
    • CFHTMLBODY
    • CFHTMLHEAD
    • CFHTTP
    • CFHTTPPARAM
    • CFINCLUDE
    • CFLOCATION
    • CFLOCK
    • CFLOG
    • CFMAIL
    • CFMAILPART
    • CFMAILPARAM
    • CFOUTPUT
    • CFPAUSE
    • CFRETHROW
    • CFSAVECONTENT
    • CFTIMER
    • CFTHROW
    • CFWDDX
    • CFIMAGE
    • CFZIP
    • CFFEED
  • added CFSAVECONTENT TRIM="true|false" attribute
  • added underlying attributeCollection support for tags

1.4 - October 2010

  • fixed #282: dateformat bug introduced in fix for #234
  • fixed #151: "fullname" key not included in cfc metadata
  • added <CFSCRIPT lang="java">
  • added system functions
    • SystemMemory()
    • SystemFileCacheInfo()
    • SystemFileCacheList()
    • SystemFileCacheFlush()
    • SessionCount( [appname] )
  • fixed #147: LSDateFormat handling of nulls
  • fixed #234: DateFormat handling of mask containing single quote
  • fixed #236: ListSort with numeric sort of dates
  • fixed need for init function in component when using 'new' operator
  • added hooks for custom languages <CFSCRIPT lang="">
  • Upgraded Lucene to 3.0.2
  • added
    • FileUpload()
    • FileUploadAll()
  • added CFFILE ACTION=UPLOADALL
  • added network functions
    • IPResolveDomain()
    • IPReverseLookup()
    • IPGetMXRecords()
    • IPAsInteger()
    • IPInRange()
    • IPNetworkAddress()
    • IPBroadcastAddress()
    • IPGetLowAddress()
    • IPGetHighAddress()
    • IPToCIDR()
    • IPGetCount()
  • fixed #276: SerializeJson should not escape simple quote
  • fixed #41: issue with argumentCollection and named arguments
  • fixed #154: CFFTP ignores timeout values
  • fixed #97: server.coldfusion.productversion should use comma as separator as opposed to a period
  • fixed #227: CFDIRECTORY silently fails trying to create directory
  • fixed #267: CFTEXTAREA does not accept text using Safari
  • fixed #269: CFDIRECTORY action="list" attribute "filter" fails when bracket characters in filter string
  • fixed #279: CFDIRECTORY bug with "type"
  • fixed #281: CFDIRECTORY listInfo additional support
  • fixed #280: QueryDeleteRow() fails if only one row is in Query
  • fixed #278: XMLValidate() result messages are of an incomplete format
  • added ApplicationList()/ApplicationCount()/ApplicationRemove()
  • added
    • DataLoad()
    • DataSave()
  • updated onApplicationStart() loading times for diff apps at once
  • updated the CFSCHEDULE to calculate the starttime faster
  • fixed #273: NPE when passing array with undefined elements to a function
  • improved CFQUERY background=true; for higher volume queries
  • fixed Application.cfc form-upload problem onMissingTemplate()
  • added QueryRequestMetrics() to track how much per-request querys
  • fixed the H2 database URL parsing
  • fixed "Response committed, cannot add header" in redirects
  • added more detail to the [server] properties
  • updated the database pooling manager for quick failures
  • fixed increasing timeout issue with SQL Server datasources
  • added Console()/ConsoleOutput() debugging functions
  • added support for CFMAIL useSSL and useTLS attributes
  • added support for Eucalyptus Walrus cloud storage
  • added Amazon S3 functions
    • AmazonS3Read()
    • AmazonS3Write()
    • AmazonS3Delete()
    • AmazonS3Rename()
    • AmazonS3SetAcl()
    • AmazonS3ListBuckets()
    • AmazonS3List()
    • AmazonS3GetUrl()
  • rewritten Amazon S3 access library (removed JetS3)
  • fixed #150: CFSELECT queryPositon attribute
  • fixed <cfreturn> bug when inside a CFOUTPUT inside a CFC
  • fixed base component.cfc to include init() method
  • added support for arrays in for...in loops in cfscript
  • fixed #254: Can't flush cfquery cache
  • fixed #255: MySQL results are "undefined class" instead of "null"
  • improved CFDUMP; add OUTPUT and ABORT support
  • added WriteDump()
  • fixed ARGUMENTCOLLECTION bug inside CFINVOKE with arguments
  • updated Amazon Function support
    • added AmazonRegisterDatasource()
    • renamed Amazon functions to be consistent
    • rejigged functions to support named-parameter calling
  • cookie updates: SetCookie() added; httponly flag support
  • renamed functions to: CSVRead()/CSVWrite()
  • added WriteLog()/DataSourceInfo()
  • added support for core functions to have named/params
  • fixed tag parser for catching <#cf tags
  • added NOCFML tag
  • improved initial cfml parsing speed
  • fixed isValid("integer",xx) bug
  • fixed NA#3332: Indexing a query with categories using CFINDEX
  • fixed thread/lock treated as reserved word
  • added support for transaction in cfscript
  • added style="document-wrapped" to CFCOMPONENT
  • fixed #241: use of "import" as variable name or function name in CFC throws error
  • fixed transaction treated as reserved word
  • fixed Application.cfc onMissingTemplate() "application" scope missing
  • added support for lock and thread in cfscript
  • fixed multiple attribute support for cfscript param operator
  • added support for dynamic values in abort, exit and throw operators
  • fixed issue passing SessionHeader back to Salesforce web service
  • added support for exit, param and rethrow, throw operators in cfscript
  • fixed handling of missing cfscript endtag error
  • fixed NA#3327: cfimap does not support download of non-ascii named attachments

1.3 - April 2010

  • fixed NPE due to recent parser update
  • added support for abort operator in cfscript
  • Moved out the CFSMTP tag into its own plugin implementation
  • Added per-file caching support to imported components
  • Added type= attribute into the javascript block
  • fixed NPE in debugging switch statements in cfscript
  • Added support for PATH attribute to CFIMPORT
  • Added import statement support to cfscript
  • added: Server.cfc onServerStart() support
  • fixed #217: Retain file date after CFFILE copy/move
  • fixed NA#3319: With scheduled tasks, seconds field of start/end time is ignored
  • fixed NPE in cfschedule engine
  • fixed NA#3318: Interval scheduled tasks with end time near midnight not processed properly
  • added support for 'new' operator
  • fixed #215: Unexpected behavior using java.util.collections shuffle
  • added qualifier parameter to readcsv function
  • added ReadCSV(); Updated ToCSV()
  • fixed NA#3315: cfschedule requestTimeout value of 0 or less not handled properly
  • fixed NA#3314: scheduled task with start/end time of 2am not handled properly
  • updated CreateObject(); defaults to 'component' if only 1 param
  • various core memory usage optimizations
  • made the following improvements to the CFDOCUMENT tag:
    • default headers/footers to align left to match commercial BD and CF
    • support 'srcFile' attribute with relative paths
    • support 'src' attribute with relative URLs
    • support attributes 'backgroundVisible', 'author', 'title', 'subject' and 'keywords'
    • improve error reporting when PDF generation fails
    • support encryption even if 'ownerpassword', 'userpassword' and 'permissions' aren't set
    • fix bug with 'name' attribute being ignored
    • support 'mimetype' attribute value of 'text/plain'
    • support 'permissions' attribute value of 'AllowFillIn'
    • if 'permissions' attribute is not present then default to no permissions
    • support 'encryption' attribute value of '40-bit' and '128-bit'
    • support <body> tags 'bgcolor' attribute in HTML that's being converted to PDF
    • support some HTML tags in header and footer sections
    • return an error for permissions that are not valid with 40-bit encryption
    • fix bug with totalpagecount and multiple sections
    • add support for totalsectionpagecount and currentsectionpagenumber
  • improved fix for NA#3308: cfcache action="FLUSH" doesn't flush cached files with another server url part
  • added GetTagStack()
  • fixed NA#3308: cfcache action="FLUSH" doesn't flush cached files with another server url part
  • fixed NA#2814: secondary fix for *.*.* wildcards
  • fixed support for more complex values in implicit struct/array creation
  • fixed NA#3309: CFQUERYBATCH throws exception if spool directory doesn't exist
  • fixed support for CFTRY block with CFFINALLY but no CFCATCH
  • support 'finally' in cfscript
  • added CFFINALLY support to CFTRY..CFCATCH
  • fixed #199: JsStringFormat() encoding unicode safe
  • added isInstanceOf() function (issue #123)
  • fixed #209: support for string based keys in implicit struct creation
  • fixed issue with validation of local variables
  • fixed #208 Custom Tag in <cfthread>
  • cfchart now supports date/time values and will use DateAxis if date/time data is detected for series
  • added support for 'include' operator
  • added renderInclude() function
  • cfstylesheet supports INLINE/HEAD/FOOTER
  • fixed support of local variable declaration without initial value
  • updated CFMAIL/CFCHART/QueryServer/QuerySlowLog for VFS
  • expanded support for specifying absolute paths as $/a/b/... (see #204)
  • updated CFLOG/CFTRACE to utilise VFS
  • fixed NA#3262: cfdirectory * ISE if the 'action' attribute is a variable and no 'name' attribute
  • fixed #204: The VFS broke portable absolute paths such as $/usr/webapps/work on Windows
  • fixed #168: Plugin Manager Infinite Loop Failure * Bombs Tomcat
  • updated webservices/cfjavascript/cfstylesheet to utilise VFS
  • update fix for bug NA#3288 to allow tasks to run on the end date but not after
  • added support for operator support in <cfif>/<cfelseif>
  • refix of NA#1450: Invoking CFC methods with PACKAGE access with CFINVOKE
  • refix of NA#1751: CFINCLUDing file that was just created does not work
  • fixed DataSourceDelete() bug
  • fixed NA#3301: timeout attribute not honored by <cfftp> tag
  • fixed problem with creation of collections due to GAEVFS [FileUtils.getCanonicalPath()]
  • GAE support (phase 1 of 2) added use of GAEVFS in key areas (merged from OpenBD-Google branch).
  • fixed bug with ANTLR parser try/catching of java exceptions
  • fixed bug with ANTLR parser incorrectly identifying assignment statement as implicit struct
  • fixed #196: OpenBD won't run on ServletExec 6.0 (and possibly some other Servlet/JSP Engine brands)
  • fixed bug in implicit struct/array creation with non-primary expression values
  • added support for implicit struct/array creation
  • added support for operators: +=, -=, %=, /=, *=, &=, ++, --, %, ==, !=, <, >,<=, >=, !, ||, &&
  • new ANTLR based parser for cfscript/expression engine
  • fixed NA#3288: scheduled task * daily task with enddate in the past continues to run
  • fixed NA#3292: scheduled tasks * do not delete the task from bluedragon.xml once enddate is reached
  • fixed NA#3284: Errors with Date Functions when no day value is provided
  • fixed #181: Added ListCompact()
  • fixed #164: SerializeJSon() key case
  • fixed #121: conversion error when "E-"
  • fixed #185: HtmlCleanUp() not bubbling up all errors
  • fixed #190: Treating as a number "-."
  • fixed #143: HtmlEditFormat() double encoding
  • fixed #192: deserializeJSON() mistreating stringed-numbers
  • fixed #162: isJSON() for simple strings
  • isValid('email') now less strict
  • added JSONP support to remote calling CFC's
  • update CFSCHEDULE engine to make sure only one instance
  • update CFMAIL mail sending code to match latest BD 7.1 code
  • fixed NA#3285: CFMAIL sometimes fails to send an email
  • fixed CFMAIL setting Message-ID now persists
  • added: ThrowObject() / Throw()
  • added: QueryDeleteColumn()/QueryColumnArray()
  • added: QueryIsEmpty()/QueryRowStruct()/QueryColumnList()
  • added #187: Include Java Exception Classes in CFCATCH
  • added DataSourceCreate()/DataSourceDelete()/DataSourceIsValid()
  • fixed #180: Improve handling of IllegalAccessException when invoking methods
  • fixed #178: cfc output missing from response when it throws an exception
  • expanded the fix for NA#3260 to include newly written files (not just appending to existing files)
  • fixed NA#3260: CFFILE leaks descriptors when appending to a file
  • ported NA#3282: output missing when cfc function throws an Exception
  • fixed NA#3219: xmlParse() does not resolve SYSTEM ENTITY
  • fixed NA#3281: <CFINCLUDE page="a.cfc?method=b"> fails on Jetty
  • fixed onRequestStart() / onApplicationStart() return values
  • fixed #172: Expired daily scheduled task runs
  • improved #157: CFJAVASCRIPT: Positional/Unique names
  • fixed NA#3172: CFDIRECTORY * sort attribute won't work without column name
  • added QueryRun()/QueryOfQueryRun()
  • added ArrayRest()/ArraySlice()/ArrayReverse()
  • added ArrayConcat()/ArrayValueCount()/ArrayValueCountNoCase()/ListSwap()
  • added htmlHead()/htmlBody()
  • added ReMatch()/ReMatchNoCase()
  • added ListIndexExists()
  • added ArrayIndexExists()
  • added CFHTMLBODY with POSITION attribute; optional endtag
  • improved CFHTMLHEAD with POSITION attribute; optional endtag
  • added ListTrim()
  • added ArrayLast()/ArrayFirst()/ArrayGet()
  • added ArrayFind()/ArrayContains() functions
  • added ArrayFindNoCase()/ArrayContainsNoCase() functions
  • added HashBinary() function
  • updated SQL Server drivers
  • fixed NA#3275: SearchEngineFriendlyURLFilter may sometimes match a request to the wrong alias

1.2 - October 2009

  • added Location() function
  • added ToCSV() / ToHTML() functions for query output
  • fixed NA#3226: arguments scope does not like being duplicated more than once
  • updated text-mining to be Apache POI3.5 compliant
  • fixed handling of utf-8 strings in HtmlTidy function
  • fixed NA#3272: QoQ ordering on numeric strings
  • fixed NA#3268: A cfimage resize produces poor quality image
  • mass StringBuffer replacement
  • pluginManager now auto-discovers plugins
  • added HtmlSourceFormat() for printing formatted HTML
  • added HtmlTidy() for cleaning HTML content
  • fixed encoded filename for CFSMTP
  • separate error log for background queries
  • added full support for Nirvanix Cloud Storage API
  • fixed Amazon S3 handler
  • improve error message when CFIMAGE tag fails to modify contrast/brightness.
  • fixed #126: SES Filter and Query String Blanked Out When PathInfo is Present
  • added "server.query.slowlog" tracking
  • added AmazonSimpleDB SetDBStruct() method
  • fixed isValid() for email causing high cpu usage
  • fixed NA#3249: cfimage - transparent .gif files have black backgrounds after edited
  • fixed #133: compilation error when accessing web service where cfc resides in a directory path that includes '-' in a directory name
  • fixed #136: POST to remote CFC method throws error and returns SOAP instead of simple values
  • fixed CFIMAGE FONTCOLOR support
  • removed CFGRAPHDATA from getSupportedTags() output
  • added core Amazon SimpleQueueService support functions
  • fixed CFAJAXPROXY callback function
  • fixed #135: cfexecute - java.io.exception: error=24, too many open files
  • fixed NA#3240: cfindex doesn't provide good title and summary
  • fixed NA#3238: url variables with the same name are appended rather than overwritten
  • fixed NA#3237/NA#3236: issues with '+' operator in QoQ when both operands are query columns
  • updated Amazon SimpleDB support
  • fixed NA#3231: scheduled tasks don't run at correct time
  • fixed support of CFDUMP TOP for CFCs
  • fixed CFAJAXPROXY NullPointerException/JS problem
  • fixed DeserializeJSon() to preserve leading zero's in numbers as strings
  • fixed #115: nesting of CFINVOKE within CFINVOKEARGUMENT
  • fixed#6: further fix for <cfdump> for cfquery now printing the params passed
  • fixed #124: getTempFile does not create the file
  • updated fix for NA#3217: sql inserts from a function does not escape single quotes
  • further fix for #43/#44 when values are equal but underlying element types are string/numeric
  • added support for CFDOCUMENTITEM and CFDOCUMENTSECTION
  • fixed NA#3217: sql inserts from a function does not escape single quotes
  • CFHTTP: disable preemptive authentication, allowing for support of digest authentication
  • support compilation using Java 6
  • add irc support
  • CFDOCUMENT fix: avoid potential NPE if font directory does not exist
  • fixed #114: CFDOCUMENT drops html entities from PDF
  • fixed #113: SerializeJSON() handling of nulls
  • fixed minor issue with defaulting of CFDOCUMENT font directories
  • fixed #111: improved font support for unicode characters in CFDOCUMENT
  • fixed CFFEED ACTION=CREATE publisheddate / duplicate title
  • added "server.system.resourcepath" to specify a different path for the web resources (cfvideoplayer etc) (supports $)
  • fix NA#3071
  • fixed #109: getRealPath Null
  • fixed CacheGet(.); throws exception instead of returning null
  • fix NA#3071: NPE when deserializing CFC with CFSCRIPT in pseudo-constructor
  • fixed CFTHREAD/CFJOIN name="" bug when using CreateUUiD()
  • fixed NA#3209: value "component" for CFFUNCTION RETURNTYPE and CFARGUMENT TYPE

1.0.1 - January 2009

  • make sure cfpop closes connection when exception occurs
  • fixed NA#3162: cfftp actions exists and existsFile always use passive mode
  • fixed NA#3158: allow "default" to used as a named argument in cfscript
  • fixed #79: QoQ min doesn't work with Date
  • added support for ArrayIsDefined() function
  • added new function ArrayTrim() function
  • fixed NA#3156: CFPOP fails to read email that has invalid characters in addresses
  • added CFFEED ACTION="CREATE"
  • fixed NA#3152: can't add empty string to column of type int or decimal
  • fixed NA#3151: custom fields return empty when indexing pdf files
  • enchancement CFSMTP 'application' attribute to get at proper scope
  • enchancement CFSMTP ip address now available on callback CFC's
  • fixed CFSMTP logging
  • added a better fix for #65
  • fixed #73: arrayLen on binary variable fails
  • added new function HtmlGetPrintableText()
  • added JMX MBeans for cfEngines
  • added JMX functions
  • fixed #70: added support for CF_SQL_TIMESTAMP in QueryNew
  • admin console password issue. Now defaults to 'admin'
  • added jTDS and Microsoft SQL Server driver jars
  • fixed #68: LSDateformat now handles blank string
  • added support for admin to check the mail spool

1.0 - March 2008

  • added: toBase62() / fromBase62() functions
  • fix error reporting issue introduced in fix for #3128
  • fixed #53: cfassociate bug with custom tag nested more than 2 levels deep within itself
  • add support for this.mappings
  • added: 'SystemReloadConfig()' function for reloading the bluedragon.xml file
  • fixed #65: ClassCastException when accessing a web service that modifies the url variables in Application.cfc
  • fixed#6: <cfdump> for cfquery now printing the params passed
  • fixed#15: <cfdump> only output the styles once
  • added: LISTINFO parameter to <cfdirectory>
  • fixed#30: Add TYPE to the <cfdirectory>
  • added 'cfcachecontent'/'filecache' to the CacheStats()/CacheDeleteAll() methods
  • added IsJSON() / DeSerializeJSON() / SerializeJSON()
  • new DirectoryCreate() DirectoryList() DirectoryDelete()
  • added FileXXX functions; VFS support
  • map cfthread.ERROR metadata variable to cfthread.EXCEPTION for CF compatibilty
  • fixed NA#3136: cfqueryparam * cf_sql_timestamp is inserting inaccurate milliseconds
  • added CFLOOP FILE=X [CHARACTERS=Y]
  • added CFLOOP ARRAY=X
  • added H2 Embedded Database
  • added CFSMTP
  • added Amazon SimpleDB support for CFQUERY + functions
  • added CacheGetAll() function to retrieve all active caches in the engine
  • fixed NA#3130: Default error handler does not handle Bad File Exceptions
  • fixed NA#3128: Internal Server Error occurs when catching a rethrown exception within a function and Debug Output is enabled
  • don't record rethrown exceptions twice in debug output
  • fixed #64 and #NA3134: cfquery without name attribute throws error
  • fixed #61: support cfloop'ing over strings that can be converted to dates
  • upgraded Lucene to 2.4.0
  • fixed #60: Error when invoking UDF with optional arguments
  • fixed NA#3100: simple variables need to be passed by value to CFC methods
  • fixed NA#3119: CFMAPPING RELATIVEPATH attribute does not honor IIS virtual directories
  • fixed #58: Unexpected exception passing String[] to java method
  • fix for MySQL column aliases not being honoured without using useOldAliasMetadataBehavior
  • add support for result variable that specifies the ID of an inserted row
  • fixed #55: Double close bug in cfexecute
  • fixed NA#3112: cfExecute fails with "too many open files" error
  • fix incrementing of newconnections datasource counter
  • fixed NA#2779: No error thrown for a non-empty directory with <cfdirectory action="delete"> without recurse="true"
  • fixed NA#2769: DateDiff function returns unexpected results for dates spanning daylight savings time.
  • fixed NA#3090: client.lastvisit always reports the current time
  • fixed NA#3114: can't invoke CFC private functions within CFTHREAD
  • improve checking for required attributes with CFFILE tag
  • fixed #49: namespaces not honored in cffunction
  • no longer apply DST to cfwddx datetime offset output
  • fixed NA#2890: CFREGISTRY fails to create key under branch that doesn't exist
  • fix bug with CFEXECUTE output and error output
  • fixed NA#3105: cfwddx datetime is not converting to local time
  • fixed NA#2969: remote CFC method call now honours xml return type
  • added in Memcached support
  • added in new abstracted cache implementation
  • fixed NA#3101: Web Service Name cannot be used in cfinvoke tag
  • fixed NA#2934: Exception not thrown when web service cffunction is missing returnType
  • fixed NA#2976: cffile upload nameconflict makeunique fails if multiple files uploaded in same millisecond
  • fixed potential NPE in query batch log if spool directory is not valid
  • fixed reference to OpenBlueDragon.jar for Web services handling
  • deep copy attributes passed to cfthread
  • fixed #38: support cfexecute errorvariable and errorfile
  • fixed #22: support cfthread and thread scope, and full scope access in cfthread body
  • fixed NA#3071: CFC serialization to a file
  • fixed #35: CFEXECUTE arguments passed as an array are split on space
  • support same api as CF8 for cfthread
  • fixed #24: support cfthread action
  • added support for sleep() function
  • fixed NA#3082: constructing java.util.HashMap or java.util.Hashtable from CF struct
  • added support for "Generate UUID as CFTOKEN value" option
  • fixed NA#3079: built-in function initialization error
  • fixed NA#3078: "is-type-of" for CFC in custom tag path (without package)
  • fixed NA#3076: CFCACHE does not flush on file modification
  • added following functionality to CFIMAGE: ability to crop, rotate, add border, adjust brightness and contrast, and apply gray scale filter.
  • fixed #32: cfhttpparam type 'file' is ignored when a file is PUT with cfhttp
  • fixed NA#3073: evaluation of CFLOOP ITEM variable as indirect reference
  • upgraded Lucene to 2.3.2
  • support for OnMissingMethod
  • new fix for NA#2978
  • fixed internal server error when username/password is passed to cfhttp
  • refactored QoQ preparedData
  • add PADDING= attribute to CFQUERYPARAM for padding out numbers
  • refactored CFQUERY to support different implementations
  • fixed NA#3060: issue with trim() on loop index
  • add MonthAsString locale parameter support
  • fixed #18: MonthAsString doesn't output month in current locale
  • fixed #9: cfdump styles updated for xhtml 1.0 compliance
  • fixed NA#3056: SearchEngineFriendlyURLFilter causes duplicate query string parameters
  • fixed potential NPE in mail sending when backup server used
  • fixed NA#3054: Support setting mail host in message-id
  • fixed NA#3045: expandPath results wrong with Apache mod_rewrite.
  • include hostname in file cache key
  • fixed NA#3052: missing <tempdirectory> causes NullPointerException
  • updated coldfusion productname and version variables
  • fixed NA#3051: avoid potential file not found on cfcache file expiry
  • fixed NA#3022: CFCACHE issue with pages containing iso-8859-15 chars
  • fixed NA#3024: xmlParse and CFXML strip the <!DOCTYPE ..> element
  • fixed NA#3028: numberformat issue with mask "09"
  • fixed NA#2999: support string operators on java object operands
  • fixed NA#3031: cfdump of getFunctionList causes internal server error
  • fixed NA#3036: added support for addAll java method for CFARRAY
  • fixed NA#3037: CFTRANSACTION end tag not required for rollback or commit
  • fixed NA#3039: StructKeyExists returns true when value is null
  • fixed NA#3038: Function stored in local variable can't be invoked
  • fixed NA#3040: cfargument type="string" doesn't support java object
  • fixed NA#3042: CFEXIT METHOD="LOOP" within CFELSE or CFELSEIF
  • updated fix for NA#2638 (again): NPE caused by serializing childless xml nodes
  • fixed NA#3046: application scope only times out when session scope enabled
  • fixed NA#3047: Issue with calling of a java method in inner class that extends another inner class that implements a public interface
  • fixed NA#3048: Java Map put() method converts key to string