1.16.0
July 30, 2026
BoxLang 1.16.0 is a reliability, compatibility, and observability-focused release with major HTTP client lifecycle hardening, better runtime diagnostics, and a broad round of CFML parity fixes. The biggest theme is control: control over HTTP client reuse and timeouts, control over proxy/header behavior in real deployments, control over classpath reload behavior, and stronger alignment for edge-case language and query semantics. This release closes 50 issues across new features, improvements, and bug fixes.
🚀 Major Highlights
🌐 HTTP Client Lifecycle, Error Hooks, and Observability
This release significantly upgrades the HTTP stack with better lifecycle management and diagnostics:
BL-2559 caches HTTP/SOAP clients through Box caches to avoid uncontrolled client creation and improve timeout behavior.
BL-2558 adds a new
onHTTPErrorevent for client-level error interception and handling.BL-2562 exposes HTTP client configuration and request target metadata in BoxLang statistics.
BL-2565 introduces maximum stream-content length controls to prevent unbounded response buffering.
BL-2566 tracks observed hosts for operational visibility and traffic analysis.
🔁 Compatibility and Transpiler Parity Expansion
1.16.0 continues closing edge-case behavioral gaps for CFML and transpiled code:
BL-2580 transpiles
listAppend()member-method usage in addition to BIF usage.BL-2591 aligns
extract()argument transpilation fromtargettodestination.BL-2609 improves
query.findColumn()compatibility behavior.BL-2610 allows CFC/BX files to be included in compatibility scenarios.
🧠 Runtime Safety and Data-Model Improvements
This release also sharpens runtime correctness and developer ergonomics:
BL-2588 implements
javasettings.reloadOnChange.BL-2589 loosens default
outputannotation behavior in classes.BL-2590 adds struct stream APIs:
stream(),keyStream(), andvalueStream().BL-2598 introduces
useProxyHeadersfor reverse-proxy aware deployments.
✨ New Features
HTTP and Runtime Telemetry
BL-2558: Added
onHTTPErrorevent for HTTP clients.BL-2562: Exposed HTTP client configuration and request target metadata in runtime statistics.
BL-2598: Added
useProxyHeaderssetting for proxy-aware request handling.
Language and Type-System Surface
BL-2590: Added struct streaming capabilities:
stream(),keyStream(),valueStream().BL-2609: Added compatibility behavior for
query.findColumn().BL-2610: Added compatibility support allowing CFC/BX files to be included.
Classloading and Output Pipeline
BL-2577: Added support for setting
dispositionon write-to-browser interception.BL-2585:
dynamicClassLoader.addPaths()now accepts a single JAR or class-file path.
🔧 Improvements
HTTP Client Management
BL-2559: Updated HTTPService to cache HTTP/SOAP clients for better timeout behavior and reduced client churn.
BL-2565: Added max stream content length controls to protect against unbounded streaming into buffers.
BL-2566: Added observed-host tracking to
BoxHTTPClientfor better observability.
Language, Transpiler, and Compatibility
BL-2561: Extended bitwise BIF support to
longvalues.BL-2580: Added transpilation support for
listAppend()member syntax.BL-2586: Improved compatibility so
e.extendedInfocan be set in CF scenarios.BL-2589: Loosened default class
outputannotation behavior.BL-2591: Updated transpilation mapping for
extract()(targettodestination).BL-2592: Added missing archive format support.
compress()now supports:bzip,bzip2,tar,tar.bz,tbz,tbz2,tgz,tar.gzextract()now supports:bzip,bzip2,tar,tbz,tbz2,tgz,tar.gz
Runtime and Execution Behavior
BL-2588: Implemented
javasettings.reloadOnChange.BL-2601: Allowed mixed positional and indexed
procresultusage.BL-2613: MiniServer now defaults form-field charset encoding to UTF-8.
🐛 Bug Fixes
Closures, Interfaces, and Proxy Semantics
BL-2381: Closures proxied to functional interfaces now respect default methods.
BL-2552: Fixed closure binding to non-lexical variables in calling UDFs.
BL-2608: Fixed overriding default interface methods with generic proxy.
HTTP, MiniServer, and Web Runtime
BL-2556: Fixed missing
fileContentin HTTP results on low-level connection failures.BL-2567: Fixed Basic Auth charset assignment during security protocol negotiation.
BL-2572: Fixed MiniServer rewriting
/wsrequests due to trailing slash handling.BL-2578: Fixed whitespace management behavior that broke JavaScript output.
BL-2581: Fixed whitespace management not removing leading spaces.
Query, QoQ, and Data Handling
BL-2563: Fixed
query.filterhandling for null column values.BL-2575: Fixed QoQ errors with empty list parameters.
BL-2603: Fixed Oracle null refcursor out params defaulting to empty string in compat mode.
BL-2606: Fixed casting errors when setting defaults in non-string query columns.
BL-2611: Fixed compound operators on query columns.
File, Zip, and Loop Semantics
BL-2573: Fixed zipping a directory into a file inside itself.
BL-2596: Fixed file-loop
indexanditemhandling.BL-2597: Added character support in file-loop operations.
BL-2604: Fixed file-loop validation requiring either
itemorindex.
Casting, Parsing, and Compatibility Edge Cases
BL-2553: Fixed
urlDecode( 0 )ClassCastException.BL-2554: Fixed missing implementation path for
cfloopstruct attributes.BL-2570: Fixed
structKeySet()forcing keys to strings.BL-2571: Fixed
formatBaseN()forLonginputs.BL-2579: Fixed list append/prepend
includeEmptyFieldsbehavior on incoming values.BL-2582: Fixed relative class resolution to include base template path lookup.
BL-2583: Added DateTime caster compatibility for
M/d/yyyy hh:mm:ss.SSS.BL-2584: Fixed parser issue with
rethrowand nestedswitch.BL-2587: Fixed
createObject()errors when classloader is wrapped inDynamicObject.BL-2602: Fixed cookie
expires="never"casting failure.BL-2605: Fixed parser issues involving
nullinassertstatements.
Runtime Stability and Performance
BL-2560: Fixed performance regression in compare operator.
BL-2564: Fixed
NullPointerExceptioningetClassMetadata.
📊 Release Snapshot
Release Date: July 30, 2026
Status: Released
Total Issues: 50
Distribution: 30 Bugs, 12 Improvements, 8 New Features
Primary Focus: HTTP client lifecycle hardening, observability, CFML/transpiler compatibility, parser/runtime stability
BoxLang 1.16.0 is the recommended update for teams that rely heavily on HTTP integrations, MiniServer deployments behind proxies, and CFML compatibility edge-case behavior.
Last updated
Was this helpful?
