Changes since 7.1.1.17.
# Lucee 8.0.0.294 changelog
Changes since 7.1.1.17.
Source: Lucee issue tracker (LDEV) — https://luceeserver.atlassian.net/projects/LDEV
- LDEV-6664 (Enhancement, fixed in 8.0.0.284): Bridge SLF4J 2.x from javaSettings.maven / mavenLoad libraries into Lucee logging — https://luceeserver.atlassian.net/browse/LDEV-6664
- LDEV-6660 (Task, fixed in 8.0.0.282): Lucee 8.0: deprecate the perl (Apache ORO) regex engine as default, Lucee 9 defaults to java — https://luceeserver.atlassian.net/browse/LDEV-6660
- LDEV-6659 (Task, fixed in 8.0.0.281): 7.1.2: update bundled extensions to latest final releases — https://luceeserver.atlassian.net/browse/LDEV-6659
- LDEV-6618 (Enhancement, fixed in 8.0.0.279): AI: support model="auto" with model discovery and modelPreference — https://luceeserver.atlassian.net/browse/LDEV-6618
- LDEV-6621 (Enhancement, fixed in 8.0.0.278): Add AIGetConnections() to list configured AI connections — https://luceeserver.atlassian.net/browse/LDEV-6621
- LDEV-6619 (Enhancement, fixed in 8.0.0.277): Use the Config log instead of a PageContext lookup for background processes — https://luceeserver.atlassian.net/browse/LDEV-6619
- LDEV-5349 (Enhancement, fixed in 8.0.0.276): deserializeJSON(jsonVar=myJSON,strictMapping="query") — https://luceeserver.atlassian.net/browse/LDEV-5349
- LDEV-6617 (Bug, fixed in 8.0.0.275): Admin: restart page uses a fixed 740px wide table — https://luceeserver.atlassian.net/browse/LDEV-6617
- LDEV-6616 (Bug, fixed in 8.0.0.275): Admin: extension names in the extension tiles are too large for the fixed-size tile — https://luceeserver.atlassian.net/browse/LDEV-6616
- LDEV-6145 (Bug, fixed in 8.0.0.275): OSGiUtil.improveFileName() renames bundle JAR without updating Felix, causing "not unique" crash on restart after extension upgrade — https://luceeserver.atlassian.net/browse/LDEV-6145
- LDEV-5857 (Incompatibility, fixed in 8.0.0.275): ACF Incompatibility: ReplaceNoCase() Throws Error When Substring Is Empty — https://luceeserver.atlassian.net/browse/LDEV-5857
- LDEV-5852 (Bug, fixed in 8.0.0.275): Admin: "Cancel" button on Custom Tags list page resets all form checkbox selections globally — https://luceeserver.atlassian.net/browse/LDEV-5852
- LDEV-5814 (Enhancement, fixed in 8.0.0.275): build add -DtestHideJavaStack="true" to hide java stacktraces from test output — https://luceeserver.atlassian.net/browse/LDEV-5814
- LDEV-5786 (Bug, fixed in 8.0.0.275): Admin (Dark Mode): Improve Text Contrast and Update version Button Color Differentiation in Lucee 7 — https://luceeserver.atlassian.net/browse/LDEV-5786
- LDEV-5726 (Bug, fixed in 8.0.0.275): FileExists() Returns False When URL Contains Spaces — https://luceeserver.atlassian.net/browse/LDEV-5726
- LDEV-5486 (Bug, fixed in 8.0.0.275): LSEuroCurrencyFormat() with Empty Locale Showing Illegal Sign — https://luceeserver.atlassian.net/browse/LDEV-5486
- LDEV-5738 (Enhancement, fixed in 8.0.0.274): Add scheduled task autoDelete option to the admin — https://luceeserver.atlassian.net/browse/LDEV-5738
- LDEV-4364 (Enhancement, fixed in 8.0.0.273): admin compile mappings needs feedback — https://luceeserver.atlassian.net/browse/LDEV-4364
- LDEV-5768 (Bug, fixed in 8.0.0.272): Admin: Dark Mode Should Automatically Follow System Settings (Lucee 7) — https://luceeserver.atlassian.net/browse/LDEV-5768
- LDEV-5343 (Enhancement, fixed in 8.0.0.271): ?? as Null coalescing operator — https://luceeserver.atlassian.net/browse/LDEV-5343
- LDEV-5748 (Enhancement, fixed in 8.0.0.270): Add alias QueryColumnNames() for QueryColumnArray() — https://luceeserver.atlassian.net/browse/LDEV-5748
- LDEV-6615 (Enhancement, fixed in 8.0.0.269): Component.duplicate(): share generated property accessors with the duplicate via a bound wrapper (LDEV-6298 v2) — https://luceeserver.atlassian.net/browse/LDEV-6615
- LDEV-6614 (Enhancement, fixed in 8.0.0.267): createObject/new for Java classes: remove exception-driven control flow and cache hot lookups — https://luceeserver.atlassian.net/browse/LDEV-6614
- LDEV-6612 (Bug, fixed in 8.0.0.266): Lucee 8: maven coordinate without version resolves the latest Central release instead of the locally installed version — https://luceeserver.atlassian.net/browse/LDEV-6612
- LDEV-2454 (Incompatibility, fixed in 8.0.0.265): ACF Compatibility for wildcard in this.blockedExtForFileUpload — https://luceeserver.atlassian.net/browse/LDEV-2454
- LDEV-5173 (Enhancement, fixed in 8.0.0.264): add support for epoch and epochms for ParseDateTime — https://luceeserver.atlassian.net/browse/LDEV-5173
- LDEV-2024 (Enhancement, fixed in 8.0.0.263): Allow multi-character delimiters for ListAppend() — https://luceeserver.atlassian.net/browse/LDEV-2024
- LDEV-6598 (Bug, fixed in 8.0.0.262): Logging uses the request/application timezone or the JVM default instead of the server config timezone — https://luceeserver.atlassian.net/browse/LDEV-6598
- LDEV-6530 (Enhancement, fixed in 8.0.0.262): ClassicLayout: reduce timestamp allocations per log entry — https://luceeserver.atlassian.net/browse/LDEV-6530
- LDEV-6305 (Bug, fixed in 8.0.0.262): cfqueryparam CF_SQL_FLOAT against MSSQL FLOAT column returns no rows — https://luceeserver.atlassian.net/browse/LDEV-6305
- LDEV-6202 (Bug, fixed in 8.0.0.262): QueryExecute passes entire options struct as tag attributes, leaking datasource keys — https://luceeserver.atlassian.net/browse/LDEV-6202
- LDEV-6078 (Bug, fixed in 8.0.0.262): Bytecode has invalid line numbers, breaking step debugger and creating misleading exceptions — https://luceeserver.atlassian.net/browse/LDEV-6078
- LDEV-6038 (Bug, fixed in 8.0.0.262): Comments become empty StringLiteral placeholders in AST — https://luceeserver.atlassian.net/browse/LDEV-6038
- LDEV-6035 (Bug, fixed in 8.0.0.262): AST lacks fullname for shorthand script tags like abort; vs cfabort; — https://luceeserver.atlassian.net/browse/LDEV-6035
- LDEV-6034 (Bug, fixed in 8.0.0.262): AST should not expose auto-generated closure/lambda names — https://luceeserver.atlassian.net/browse/LDEV-6034
- LDEV-6027 (Bug, fixed in 8.0.0.262): Property attributes reordered in AST — https://luceeserver.atlassian.net/browse/LDEV-6027
- LDEV-6022 (Bug, fixed in 8.0.0.262): AST String literal concatenation merged at parse time — https://luceeserver.atlassian.net/browse/LDEV-6022
- LDEV-6019 (Bug, fixed in 8.0.0.262): Unquoted function attributes after parenthesis fail AST generation — https://luceeserver.atlassian.net/browse/LDEV-6019
- LDEV-6014 (Bug, fixed in 8.0.0.262): AST Dynamic property assignment with interpolated key loses structure — https://luceeserver.atlassian.net/browse/LDEV-6014
- LDEV-6008 (Bug, fixed in 8.0.0.262): PreserveSingleQuotes evaluated in cfquery AST — https://luceeserver.atlassian.net/browse/LDEV-6008
- LDEV-5987 (Bug, fixed in 8.0.0.262): AST Missing parent statement error — https://luceeserver.atlassian.net/browse/LDEV-5987
- LDEV-5986 (Bug, fixed in 8.0.0.262): AST Tag islands converted to strings — https://luceeserver.atlassian.net/browse/LDEV-5986
- LDEV-5985 (Bug, fixed in 8.0.0.262): type="java" functions crash AST parser — https://luceeserver.atlassian.net/browse/LDEV-5985
- LDEV-5984 (Bug, fixed in 8.0.0.262): AST Escaped hashes lose escaping — https://luceeserver.atlassian.net/browse/LDEV-5984
- LDEV-5983 (Bug, fixed in 8.0.0.262): AST cffunction body duplicates cfargument comments — https://luceeserver.atlassian.net/browse/LDEV-5983
- LDEV-5803 (Incompatibility, fixed in 8.0.0.262): cross engine listDeleteAt function incompatibility — https://luceeserver.atlassian.net/browse/LDEV-5803
- LDEV-4771 (Bug, fixed in 8.0.0.262): function scope context cascading and cfloop query — https://luceeserver.atlassian.net/browse/LDEV-4771
- LDEV-4709 (Bug, fixed in 8.0.0.262): isClosure Returns `false` on Arrow Functions — https://luceeserver.atlassian.net/browse/LDEV-4709
- LDEV-4160 (Incompatibility, fixed in 8.0.0.262): Chaining method on returned object from returned UDF gives syntax error — https://luceeserver.atlassian.net/browse/LDEV-4160
- LDEV-4023 (Bug, fixed in 8.0.0.262): arrayEach/Reduce ignores elements with null values — https://luceeserver.atlassian.net/browse/LDEV-4023
- LDEV-4021 (Bug, fixed in 8.0.0.262): Throwing serialized/deserialized exception object loses original stacktrace and tag context — https://luceeserver.atlassian.net/browse/LDEV-4021
- LDEV-3188 (Incompatibility, fixed in 8.0.0.262): Incompatibility - when using directoryList() with listinfo="name" — https://luceeserver.atlassian.net/browse/LDEV-3188
- LDEV-69 (Bug, fixed in 8.0.0.261): param does not support associative array syntax — https://luceeserver.atlassian.net/browse/LDEV-69
- LDEV-6596 (Bug, fixed in 8.0.0.261): Session writes and CSRF tokens lost with storage-backed sessions (Redis) and sessionCluster=true — https://luceeserver.atlassian.net/browse/LDEV-6596
- LDEV-6594 (Bug, fixed in 8.0.0.261): CSRF token lost after structClear(session) with storage-backed sessions and sessionCluster=true — https://luceeserver.atlassian.net/browse/LDEV-6594
- LDEV-6573 (Bug, fixed in 8.0.0.261): Class::init() can't call a Java static method named init — https://luceeserver.atlassian.net/browse/LDEV-6573
- LDEV-5952 (Bug, fixed in 8.0.0.261): internalRequest fails with "Content was already flushed" after resetBuffer() — https://luceeserver.atlassian.net/browse/LDEV-5952
- LDEV-5890 (Incompatibility, fixed in 8.0.0.261): Regression: can't parse dates string produced using (long, medium, short) masks — https://luceeserver.atlassian.net/browse/LDEV-5890
- LDEV-5841 (Bug, fixed in 8.0.0.261): expandPath behaves strangely with JS223 — https://luceeserver.atlassian.net/browse/LDEV-5841
- LDEV-5837 (Bug, fixed in 8.0.0.261): extension version check error — https://luceeserver.atlassian.net/browse/LDEV-5837
- LDEV-5713 (Bug, fixed in 8.0.0.261): CVE-2025-48924: Apache Commons Lang — https://luceeserver.atlassian.net/browse/LDEV-5713
- LDEV-4776 (Bug, fixed in 8.0.0.261): decimalFormat wrong rounding — https://luceeserver.atlassian.net/browse/LDEV-4776
- LDEV-4495 (Incompatibility, fixed in 8.0.0.261): `Struct.find` should support a callback as the first arguments, as per CF — https://luceeserver.atlassian.net/browse/LDEV-4495
- LDEV-4366 (Bug, fixed in 8.0.0.261): cfparam takes any random attribute as default value — https://luceeserver.atlassian.net/browse/LDEV-4366
- LDEV-4286 (Bug, fixed in 8.0.0.261): nested function(){}; throws byteccode error — https://luceeserver.atlassian.net/browse/LDEV-4286
- LDEV-4151 (Bug, fixed in 8.0.0.261): concatenation operator fails inside cffinally inside a function — https://luceeserver.atlassian.net/browse/LDEV-4151
- LDEV-4122 (Incompatibility, fixed in 8.0.0.261): Incompatibility - Multiple arguments with the same name in UDF doesn't throw an error — https://luceeserver.atlassian.net/browse/LDEV-4122
- LDEV-4062 (Incompatibility, fixed in 8.0.0.261): Arrow function with no body errors in Lucee, but not in Adobe — https://luceeserver.atlassian.net/browse/LDEV-4062
- LDEV-3963 (Bug, fixed in 8.0.0.261): Colons (`:`) in function metadata is treated as and equal sign (`=`) instead of part of the identifier — https://luceeserver.atlassian.net/browse/LDEV-3963
- LDEV-3873 (Bug, fixed in 8.0.0.261): Array.every incompatibility with ACF — https://luceeserver.atlassian.net/browse/LDEV-3873
- LDEV-3847 (Bug, fixed in 8.0.0.261): CFQUERY using attributeCollection fails when inside CFFINALLY — https://luceeserver.atlassian.net/browse/LDEV-3847
- LDEV-3672 (Bug, fixed in 8.0.0.261): array out of bounds when dump CFC object with final property — https://luceeserver.atlassian.net/browse/LDEV-3672
- LDEV-3671 (Bug, fixed in 8.0.0.261): function metadata does not handle final arguments — https://luceeserver.atlassian.net/browse/LDEV-3671
- LDEV-3619 (Bug, fixed in 8.0.0.261): param this.that throws error if preceded by an extra space — https://luceeserver.atlassian.net/browse/LDEV-3619
- LDEV-3020 (Bug, fixed in 8.0.0.261): Invalid Bytecode: Expecting a stackmap frame at branch target — https://luceeserver.atlassian.net/browse/LDEV-3020
- LDEV-2970 (Incompatibility, fixed in 8.0.0.261): arrayslice() negative offsets off by one — https://luceeserver.atlassian.net/browse/LDEV-2970
- LDEV-2924 (Incompatibility, fixed in 8.0.0.261): query.columnList cannot be used with list or string member functions — https://luceeserver.atlassian.net/browse/LDEV-2924
- LDEV-2899 (Bug, fixed in 8.0.0.261): booleanFormat(null) throws Can't cast String [] to a boolean — https://luceeserver.atlassian.net/browse/LDEV-2899
- LDEV-2773 (Bug, fixed in 8.0.0.261): unscoped thread variable not being found — https://luceeserver.atlassian.net/browse/LDEV-2773
- LDEV-2672 (Incompatibility, fixed in 8.0.0.261): left operand of the Elvis operator has to be a variable or a function — https://luceeserver.atlassian.net/browse/LDEV-2672
- LDEV-2417 (Incompatibility, fixed in 8.0.0.261): Fat arrow functions shouldn't require parentheses around single parameter — https://luceeserver.atlassian.net/browse/LDEV-2417
- LDEV-2242 (Bug, fixed in 8.0.0.261): Implicit getters strong typed in metadata to string — https://luceeserver.atlassian.net/browse/LDEV-2242
- LDEV-2213 (Bug, fixed in 8.0.0.261): Cannot set calling scope vars from closures when localMode="modern" — https://luceeserver.atlassian.net/browse/LDEV-2213
- LDEV-2133 (Bug, fixed in 8.0.0.261): cfabort thows an error in cfscript implementation with type="page" — https://luceeserver.atlassian.net/browse/LDEV-2133
- LDEV-2027 (Bug, fixed in 8.0.0.261): QueryFilter, QueryMap, QueryReduce changes currentRow inside a loop — https://luceeserver.atlassian.net/browse/LDEV-2027
- LDEV-1818 (Bug, fixed in 8.0.0.261): Interface Methods require semicolons — https://luceeserver.atlassian.net/browse/LDEV-1818
- LDEV-6070 (Enhancement, fixed in 8.0.0.260): Support bracket notation for nested form/URL parameters when formUrlAsStruct=true — https://luceeserver.atlassian.net/browse/LDEV-6070
- LDEV-5094 (Enhancement, fixed in 8.0.0.259): Application.cfc onMissingFunction( name, args ) convention to implement dynamic UDFs — https://luceeserver.atlassian.net/browse/LDEV-5094
- LDEV-296 (Bug, fixed in 8.0.0.258): Throw an error on unsupported component initMethod — https://luceeserver.atlassian.net/browse/LDEV-296
- LDEV-5865 (Enhancement, fixed in 8.0.0.256): use object[] for argument and local scopes — https://luceeserver.atlassian.net/browse/LDEV-5865
- LDEV-5826 (Enhancement, fixed in 8.0.0.255): CFLOG optimise bytecode from tag based approach — https://luceeserver.atlassian.net/browse/LDEV-5826
- LDEV-6345 (Enhancement, fixed in 8.0.0.254): Add structIsOrdered() BIF — https://luceeserver.atlassian.net/browse/LDEV-6345
- LDEV-5924 (Enhancement, fixed in 8.0.0.253): Pool Size Counter Optimization — https://luceeserver.atlassian.net/browse/LDEV-5924
- LDEV-5933 (Enhancement, fixed in 8.0.0.252): UDF Fast Path Optimization — https://luceeserver.atlassian.net/browse/LDEV-5933
- LDEV-694 (Enhancement, fixed in 8.0.0.251): Make Apache/IIS virtual directories available for Lucee — https://luceeserver.atlassian.net/browse/LDEV-694
- LDEV-5887 (Enhancement, fixed in 8.0.0.250): add LUCEE_PRECISE_MATH=disabled — https://luceeserver.atlassian.net/browse/LDEV-5887
- LDEV-6053 (Enhancement, fixed in 8.0.0.249): Lazy load extension images to reduce startup memory footprint — https://luceeserver.atlassian.net/browse/LDEV-6053
- LDEV-5571 (Enhancement, fixed in 8.0.0.248): Use a custom Truststore for SSL certs — https://luceeserver.atlassian.net/browse/LDEV-5571
- LDEV-6591 (Bug, fixed in 8.0.0.245): Lucee 8: extensions installed via lucee.extensions / LUCEE_EXTENSIONS without a version are uninstalled again at start-bundles — https://luceeserver.atlassian.net/browse/LDEV-6591
- LDEV-6587 (Bug, fixed in 8.0.0.243): createDynamicProxy / implementsJava: returning this or a CFML array to Java throws ClassCastException — https://luceeserver.atlassian.net/browse/LDEV-6587
- LDEV-6588 (Bug, fixed in 8.0.0.242): Closures / UDFs as Java interfaces fail with VerifyError — https://luceeserver.atlassian.net/browse/LDEV-6588
- LDEV-6586 (Bug, fixed in 8.0.0.241): Config placeholder replacement turns ordered structs into unordered ones — https://luceeserver.atlassian.net/browse/LDEV-6586
- LDEV-6052 (Enhancement, fixed in 8.0.0.238): Use java.util.Base64 for base64 encode and precise decode — https://luceeserver.atlassian.net/browse/LDEV-6052
- LDEV-6575 (Bug, fixed in 8.0.0.237-SNAPSHOT): invokeImplicitAccessor: implicit getter missing for property in sub component when called inside parent file — https://luceeserver.atlassian.net/browse/LDEV-6575
- LDEV-6571 (Enhancement, fixed in 8.0.0.237-SNAPSHOT): Sub components: short sub component name not accepted as a return/argument type ("Cannot cast Object type [Component comp] to a value of type [sub]") — https://luceeserver.atlassian.net/browse/LDEV-6571
- LDEV-6581 (Bug, fixed in 8.0.0.235): Internal downloads should use the server proxy - 8.0 — https://luceeserver.atlassian.net/browse/LDEV-6581
- LDEV-6572 (Enhancement, fixed in 8.0.0.234): Use lazy case evaluation for script switch — https://luceeserver.atlassian.net/browse/LDEV-6572
- LDEV-6569 (Enhancement, fixed in 8.0.0.228): Regex: cut per-call allocation in the Perl, Java and compat engines — https://luceeserver.atlassian.net/browse/LDEV-6569
- LDEV-6559 (Enhancement, fixed in 8.0.0.227): Support looping over any Java Iterable or Collection with for-in and cfloop collection — https://luceeserver.atlassian.net/browse/LDEV-6559
- LDEV-6562 (Bug, fixed in 8.0.0.226): Datasource connection pools leak after idle eviction (POOL_MAX_IDLE): pools not closed, MBeans stay registered — https://luceeserver.atlassian.net/browse/LDEV-6562
- LDEV-6553 (Bug, fixed in 8.0.0.226): Datasource names with dots are rejected by the Administrator — https://luceeserver.atlassian.net/browse/LDEV-6553
- LDEV-6548 (Bug, fixed in 8.0.0.226): Server proxy from .CFConfig.json is ignored in Lucee 7 (getProxyData() always null) — https://luceeserver.atlassian.net/browse/LDEV-6548
- LDEV-5143 (Bug, fixed in 8.0.0.226): CFDBInfo Fails on PostgreSQL Tables Created with Quoted Names — https://luceeserver.atlassian.net/browse/LDEV-5143
- LDEV-3739 (Incompatibility, fixed in 8.0.0.226): site-wide error page doesn't have "error" variable like ACF — https://luceeserver.atlassian.net/browse/LDEV-3739
- LDEV-6539 (Enhancement, fixed in 8.0.0.222): Avoid unnecessary bind for unary ops on local and argument scopes — https://luceeserver.atlassian.net/browse/LDEV-6539
- LDEV-6544 (Bug, fixed in 8.0.0.221): Function listener / cfthread `separateScopes=false`: caller's `local` and `arguments` scopes are recycled while used — https://luceeserver.atlassian.net/browse/LDEV-6544
- LDEV-6556 (Enhancement, fixed in 8.0.0.219): Core: deploy bundled Maven artifacts to the local Maven repo before installing bundled extensions — https://luceeserver.atlassian.net/browse/LDEV-6556
- LDEV-6557 (Enhancement, fixed in 8.0.0.217): Faster REReplace with literal replacements on the perl engine — https://luceeserver.atlassian.net/browse/LDEV-6557
- LDEV-4931 (Enhancement, fixed in 8.0.0.216): add inspectTemplate to getApplicationSettings() — https://luceeserver.atlassian.net/browse/LDEV-4931
- LDEV-6546 (Bug, fixed in 8.0.0.213): Cache tag clear can abort with NullPointerException and leave stale entries; RamCache tag clear deep-copies every entry — https://luceeserver.atlassian.net/browse/LDEV-6546
- LDEV-6483 (Bug, fixed in 8.0.0.213): Server.cfc (onServerStart/onBuild) silently not executed when server .CFConfig.json has no mappings beyond /lucee and /lucee-server — https://luceeserver.atlassian.net/browse/LDEV-6483
- LDEV-3213 (Bug, fixed in 8.0.0.213): local class incompatible: stream classdesc serialVersionUID — https://luceeserver.atlassian.net/browse/LDEV-3213
- LDEV-6555 (Enhancement, fixed in 8.0.0.212): Maven: support classifiers in all Maven coordinates (groupId:artifactId:version:classifier) — https://luceeserver.atlassian.net/browse/LDEV-6555
- LDEV-6489 (Bug, fixed in 8.0.0.212): Spooler logs java.io.EOFException for an empty or truncated .tsk file, deletes the file and does not say which file it was — https://luceeserver.atlassian.net/browse/LDEV-6489
- LDEV-6481 (Bug, fixed in 8.0.0.212): NPE on clean boot when Event Gateways auto-start before Component.cfc is deployed — https://luceeserver.atlassian.net/browse/LDEV-6481
- LDEV-6350 (Bug, fixed in 8.0.0.212): SpoolerEngineImpl not cleaned up during engine restart — https://luceeserver.atlassian.net/browse/LDEV-6350
- LDEV-5922 (Bug, fixed in 8.0.0.212): Operand stack underflow when using for-in loop with try-catch inside finally block — https://luceeserver.atlassian.net/browse/LDEV-5922
- LDEV-5533 (Bug, fixed in 8.0.0.212): NPE on invalid inline component syntax — https://luceeserver.atlassian.net/browse/LDEV-5533
- LDEV-5360 (Bug, fixed in 8.0.0.212): Query Indexed not working with QueryOfQuery — https://luceeserver.atlassian.net/browse/LDEV-5360
- LDEV-4792 (Incompatibility, fixed in 8.0.0.212): Can't call lambda that exists in static scope — https://luceeserver.atlassian.net/browse/LDEV-4792
- LDEV-4698 (Bug, fixed in 8.0.0.212): QoQ SQL parser doesn't understand cast with lengths — https://luceeserver.atlassian.net/browse/LDEV-4698
- LDEV-4665 (Bug, fixed in 8.0.0.212): Query filter/map functions alter datatypes — https://luceeserver.atlassian.net/browse/LDEV-4665
- LDEV-4250 (Incompatibility, fixed in 8.0.0.212): script "break" requires semicolon in Lucee, but not Adobe — https://luceeserver.atlassian.net/browse/LDEV-4250
- LDEV-3914 (Bug, fixed in 8.0.0.212): thread statement cannot be used inside an arrow function — https://luceeserver.atlassian.net/browse/LDEV-3914
- LDEV-3095 (Bug, fixed in 8.0.0.212): isValid("email") fails on examples from wikipedia — https://luceeserver.atlassian.net/browse/LDEV-3095
- LDEV-3046 (Bug, fixed in 8.0.0.212): isValid("email","test <example@exaaple.com> aaa") returns true — https://luceeserver.atlassian.net/browse/LDEV-3046
- LDEV-2122 (Incompatibility, fixed in 8.0.0.212): IsValid('email', 'email@example.com,') inconsistency with ACF — https://luceeserver.atlassian.net/browse/LDEV-2122
- LDEV-6515 (Bug, fixed in 8.0.0.209): Admin access setting "open" is ignored by cfadmin since multi-mode removal: the server context always requires a password — https://luceeserver.atlassian.net/browse/LDEV-6515
- LDEV-6119 (Bug, fixed in 8.0.0.209): ClassicLayout pattern merges message and stacktrace w/out space — https://luceeserver.atlassian.net/browse/LDEV-6119
- LDEV-6517 (Enhancement, fixed in 8.0.0.208): Reduce SecureRandom lock contention in RandomUtil (CSRF tokens, cfthread names) — https://luceeserver.atlassian.net/browse/LDEV-6517
- LDEV-6520 (Task, fixed in 8.0.0.206): Bundle markdown and SMB extensions on 8.0 (Require-Extension) — https://luceeserver.atlassian.net/browse/LDEV-6520
- LDEV-6476 (Bug, fixed in 8.0.0.205): Java serialisation: Soft struct cannot round-trip serialize/deserialize in Lucee 8.0 — https://luceeserver.atlassian.net/browse/LDEV-6476
- LDEV-6475 (Bug, fixed in 8.0.0.205): Java serialisation: Array serialVersionUID breaks Lucee 7 deserialise of Lucee 8 streams — https://luceeserver.atlassian.net/browse/LDEV-6475
- LDEV-6513 (Enhancement, fixed in 8.0.0.201): Reduce per-call overhead in mapping path resolution — https://luceeserver.atlassian.net/browse/LDEV-6513
- LDEV-6512 (Bug, fixed in 8.0.0.200): getInspectTemplate() reads sysprop / env var on every call (8.0) — https://luceeserver.atlassian.net/browse/LDEV-6512
- LDEV-6479 (Bug, fixed in 8.0.0.199): Application, server and JEE session scopes use a synchronized map, causing lock contention — https://luceeserver.atlassian.net/browse/LDEV-6479
- LDEV-6509 (Enhancement, fixed in 8.0.0.198): Reduce cachedWithin overhead — https://luceeserver.atlassian.net/browse/LDEV-6509
- LDEV-6507 (Bug, fixed in 8.0.0.197): Remove Connection: close on cflocation, REST error responses and cfflush interval — https://luceeserver.atlassian.net/browse/LDEV-6507
- LDEV-6506 (Bug, fixed in 8.0.0.196): SystemUtil.JAVA_VERSION is 0 on GA Java releases (e.g. 21, 25, 27) — https://luceeserver.atlassian.net/browse/LDEV-6506
- LDEV-6505 (Enhancement, fixed in 8.0.0.196): Update ASM to 9.10.1 for Java 27 support — https://luceeserver.atlassian.net/browse/LDEV-6505
- LDEV-6490 (Bug, fixed in 8.0.0.194): getMetadata() throws "this.cpRef is null" on a component restored with objectLoad(objectSave()) (7.0 regression) — https://luceeserver.atlassian.net/browse/LDEV-6490
- LDEV-6469 (Bug, fixed in 8.0.0.194): Regression: GetMetadata( childCfc ).functions no longer includes inherited methods — https://luceeserver.atlassian.net/browse/LDEV-6469
- LDEV-6458 (Bug, fixed in 8.0.0.193): Mail admin UI / SMTP server configuration missing after mail moved to extension (7.1.1.x) — https://luceeserver.atlassian.net/browse/LDEV-6458
- LDEV-6486 (Bug, fixed in 8.0.0.192): Minor update from 7.0 to 7.1 (.lco or Admin update) does not install the Mail extension: its Require-Extension entry has no "since" — https://luceeserver.atlassian.net/browse/LDEV-6486
- LDEV-6487 (Bug, fixed in 8.0.0.191): isValid("email") on 7.1 / 8.0 uses a temporary regex: rejects o'reilly@example.com, accepts .foo@, user.@ and a..b@ (regression) — https://luceeserver.atlassian.net/browse/LDEV-6487
- LDEV-6485 (Bug, fixed in 8.0.0.191): cfmail fails JVM-wide with "jakarta.mail.Provider: com.sun.mail.imap.IMAPProvider not a subtype" once javax.mail was used (7.1 / 8.0) — https://luceeserver.atlassian.net/browse/LDEV-6485
- LDEV-6451 (Bug, fixed in 8.0.0.181): updatePassword silently no-ops when admin password is defined via env var / system property — https://luceeserver.atlassian.net/browse/LDEV-6451
- LDEV-6450 (Bug, fixed in 8.0.0.176): cfadmin password validation fails on Lucee 8.0 - regression from 7.1 — https://luceeserver.atlassian.net/browse/LDEV-6450
- LDEV-5747 (Bug, fixed in 8.0.0.172-BETA): concurrent cfschedule updates causing CFConfig corruption — https://luceeserver.atlassian.net/browse/LDEV-5747
- LDEV-6442 (Enhancement, fixed in 8.0.0.166): ThreadLocalPageContext.fallbackEnabled() null-ThreadLocal causes JIT deopt cycle, prevents steady-state compilation — https://luceeserver.atlassian.net/browse/LDEV-6442
- LDEV-6441 (Enhancement, fixed in 8.0.0.165): UDFPropertiesLight.getArgumentsSet() rebuilds HashSet on every UDF call — https://luceeserver.atlassian.net/browse/LDEV-6441
- LDEV-6439 (Enhancement, fixed in 8.0.0.162): PageContextImpl: replace LinkedList with ArrayList for pathList, includePathList, udfs — https://luceeserver.atlassian.net/browse/LDEV-6439
- LDEV-6438 (Enhancement, fixed in 8.0.0.161): ListFind / ListFindNoCase — eliminate substring allocation in list scan — https://luceeserver.atlassian.net/browse/LDEV-6438
- LDEV-6432 (Enhancement, fixed in 8.0.0.160): Add `compat` regex mode — Java engine with Oro/ACF-compatible replacement syntax + pattern cache — https://luceeserver.atlassian.net/browse/LDEV-6432
- LDEV-6437 (Enhancement, fixed in 8.0.0.159): CFMLWriterImpl skip empty BAOS allocation, pool BAOS on WriterPool, raise gzip threshold to 2048 — https://luceeserver.atlassian.net/browse/LDEV-6437
- LDEV-6436 (Enhancement, fixed in 8.0.0.158): Streamline response output stream encoding, reduce allocations — https://luceeserver.atlassian.net/browse/LDEV-6436
- LDEV-6435 (Bug, fixed in 8.0.0.154): getApplicationSettings() reports misleading regex + listener info on ClassicApplicationContext — https://luceeserver.atlassian.net/browse/LDEV-6435
- LDEV-6434 (Enhancement, fixed in 8.0.0.150): use StackWalker for ExceptionUtil.getTagContextLine + CallStackGet — https://luceeserver.atlassian.net/browse/LDEV-6434
- LDEV-6433 (Enhancement, fixed in 8.0.0.146): cflocation: gate CallStackGet stack walk behind doesError/doesDebug — https://luceeserver.atlassian.net/browse/LDEV-6433
- LDEV-6430 (Bug, fixed in 8.0.0.145): LogUtil.doesDebug returns true at log level INFO — https://luceeserver.atlassian.net/browse/LDEV-6430
- LDEV-6428 (Enhancement, fixed in 8.0.0.144): Reduce member function runtime execution overhead — https://luceeserver.atlassian.net/browse/LDEV-6428
- LDEV-6427 (Enhancement, fixed in 8.0.0.142): Pool CFMLWriterImpl response buffer on PageContextImpl to eliminate per-request allocations — https://luceeserver.atlassian.net/browse/LDEV-6427
- LDEV-6411 (Task, fixed in 8.0.0.111): Add optional Admin MCP Server endpoint for AI-driven server configuration — https://luceeserver.atlassian.net/browse/LDEV-6411
- LDEV-6317 (Enhancement, fixed in 8.0.0.94): Replace deprecated REPOSITORY_SONATYPE default with Google Cloud Maven Central mirror — https://luceeserver.atlassian.net/browse/LDEV-6317
- LDEV-6387 (Task, fixed in 8.0.0.83): OpenAI AI response: parse multipart content blocks in getAnswers() / isMultiPart() — https://luceeserver.atlassian.net/browse/LDEV-6387
- LDEV-6113 (Bug, fixed in 8.0.0.81): Execution log enabled setting lost during ConfigImpl merge to ConfigServerImpl — https://luceeserver.atlassian.net/browse/LDEV-6113
- LDEV-6362 (Task, fixed in 8.0.0.64): Eliminate JIT Deoptimisation Storm in Config Getters — https://luceeserver.atlassian.net/browse/LDEV-6362
- LDEV-6220 (Bug, fixed in 8.0.0.60): regression: out.log being spammed - ConfigFactoryImpl read the config file — https://luceeserver.atlassian.net/browse/LDEV-6220
- LDEV-6117 (Task, fixed in 7.2.0.31): Add lucee.config.validate option to eagerly validate all config at startup without warmup — https://luceeserver.atlassian.net/browse/LDEV-6117
- LDEV-6111 (Task, fixed in 7.2.0.16): Add eager config loading mode via ConfigServerImpl.touchAll() for Docker warmup / fail-fast validation — https://luceeserver.atlassian.net/browse/LDEV-6111
- LDEV-6112 (Task, fixed in 7.2.0.15): Strict config validation: reject invalid configuration values instead of silently falling back to defaults — https://luceeserver.atlassian.net/browse/LDEV-6112
- LDEV-6109 (Task, fixed in 7.2.0.13): Support structured Maven Repository definitions in .CFConfig.json — https://luceeserver.atlassian.net/browse/LDEV-6109
- LDEV-5912 (Bug, fixed in 7.1.3.3): Filecopy with HTTP ResourceProvider (aka http resource) makes 5 HEAD requests before downloading — https://luceeserver.atlassian.net/browse/LDEV-5912
- LDEV-6666 (Bug, fixed in 7.1.2.176): Fresh install: "could not load the base component" errors because extensions install before core base CFCs are extracted — https://luceeserver.atlassian.net/browse/LDEV-6666
- LDEV-6472 (Bug, fixed in 7.1.2.175): lucee-light warmup skips Server.cfc onBuild() on first pass (needs second start) — https://luceeserver.atlassian.net/browse/LDEV-6472
- LDEV-6665 (Bug, fixed in 7.1.2.174): Lucee Light logs spurious ERROR "Could not find [/extensions/.index]" on clean boot — https://luceeserver.atlassian.net/browse/LDEV-6665
- LDEV-5193 (Bug, fixed in 7.1.2.173): Caster methods like toShort, toInteger, toByte don't check for truncation or overflow — https://luceeserver.atlassian.net/browse/LDEV-5193
- LDEV-5547 (Bug, fixed in 7.1.2.172): Property Default Values Type Inconsistency — https://luceeserver.atlassian.net/browse/LDEV-5547
- LDEV-6122 (Bug, fixed in 7.1.2.168): XMLNodeStruct.equals() mutates the other object (assignment instead of comparison) — https://luceeserver.atlassian.net/browse/LDEV-6122
- LDEV-6166 (Bug, fixed in 7.1.2.167): StructImpl.TYPE_MAX (AccessOrderLimitedSizeMap) is not synchronized — https://luceeserver.atlassian.net/browse/LDEV-6166
- LDEV-6313 (Bug, fixed in 7.1.2.166): OSGiUtil._loadBundle drops cause when bundle download fails — https://luceeserver.atlassian.net/browse/LDEV-6313
- LDEV-4424 (Bug, fixed in 7.1.2.164): Query Params are not Resolved When Query has Question Mark — https://luceeserver.atlassian.net/browse/LDEV-4424
- LDEV-5834 (Bug, fixed in 7.1.2.162): regression: cfexecute listeners corrupt scopes — https://luceeserver.atlassian.net/browse/LDEV-5834
- LDEV-6543 (Bug, fixed in 7.1.2.161): QoQ: cast() inside a sub-query fails — https://luceeserver.atlassian.net/browse/LDEV-6543
- LDEV-6567 (Bug, fixed in 7.1.2.160): Datasource pool creation can leave a replaced pool unclosed (use putIfAbsent and close loser) — https://luceeserver.atlassian.net/browse/LDEV-6567
- LDEV-3393 (Bug, fixed in 7.1.2.159): For-in loop throws NullPointerException when located within finally block — https://luceeserver.atlassian.net/browse/LDEV-3393
- LDEV-6648 (Task, fixed in 7.1.2.158): 7.1: bundle final Compress 2.1.0.3 and FTP 1.0.0.8 instead of the RC builds — https://luceeserver.atlassian.net/browse/LDEV-6648
- LDEV-6639 (Bug, fixed in 7.1.2.157): mavenLoad resolves optional (<optional>true</optional>) transitive Maven dependencies — https://luceeserver.atlassian.net/browse/LDEV-6639
- LDEV-6545 (Bug, fixed in 7.1.2.156): CFMAIL: HTML parts are sent 7bit again (LDEV-5176 flipped the quoted-printable default), long lines break — https://luceeserver.atlassian.net/browse/LDEV-6545
- LDEV-6570 (Bug, fixed in 7.1.2.155): Time values (createTime / createODBCTime / cfschedule startTime) are shown 1 hour early in America/Vancouver with timezone data 2026b — https://luceeserver.atlassian.net/browse/LDEV-6570
- LDEV-6579 (Bug, fixed in 7.1.2.154): Maven downloads should use the common downloader — https://luceeserver.atlassian.net/browse/LDEV-6579
- LDEV-6610 (Bug, fixed in 7.1.2.153): Typed argument with null default fails when omitted with full null support — https://luceeserver.atlassian.net/browse/LDEV-6610
- LDEV-6547 (Bug, fixed in 7.1.2.152): dateFormat/timeFormat with an X mask changes the JVM default timezone to CET — https://luceeserver.atlassian.net/browse/LDEV-6547
- LDEV-6036 (Bug, fixed in 7.1.2.151): AST adds default type="any" to property when not in source — https://luceeserver.atlassian.net/browse/LDEV-6036
- LDEV-5990 (Bug, fixed in 7.1.2.150): AST Function param hint/defaultValue metadata lost — https://luceeserver.atlassian.net/browse/LDEV-5990
- LDEV-6024 (Bug, fixed in 7.1.2.149): Computed member expression inside scope access corrupts AST — https://luceeserver.atlassian.net/browse/LDEV-6024
- LDEV-6018 (Bug, fixed in 7.1.2.148): AST String concatenation wraps parts in CastExpression with typeAnnotation — https://luceeserver.atlassian.net/browse/LDEV-6018
- LDEV-6015 (Enhancement, fixed in 7.1.2.147): AST StringLiteral should include quoteChar to preserve original quote style — https://luceeserver.atlassian.net/browse/LDEV-6015
- LDEV-5989 (Bug, fixed in 7.1.2.147): AST Interpolated attribute values have escaped hashes in raw field — https://luceeserver.atlassian.net/browse/LDEV-5989
- LDEV-6028 (Bug, fixed in 7.1.2.146): Struct key AST type changes based on separator (: vs =) — https://luceeserver.atlassian.net/browse/LDEV-6028
- LDEV-6017 (Bug, fixed in 7.1.2.146): AST Interpolated struct keys become BinaryExpression CONCAT — https://luceeserver.atlassian.net/browse/LDEV-6017
- LDEV-6011 (Bug, fixed in 7.1.2.146): Internal function names in AST instead of literal syntax — https://luceeserver.atlassian.net/browse/LDEV-6011
- LDEV-6009 (Enhancement, fixed in 7.1.2.146): AST output should include metadata for sourceType and dotNotationUpperCase — https://luceeserver.atlassian.net/browse/LDEV-6009
- LDEV-6006 (Bug, fixed in 7.1.2.146): astFromString() breaks on CFML comment syntax in string literals — https://luceeserver.atlassian.net/browse/LDEV-6006
- LDEV-5982 (Bug, fixed in 7.1.2.146): AST cflock adds internal id attribute — https://luceeserver.atlassian.net/browse/LDEV-5982
- LDEV-6041 (Bug, fixed in 7.1.2.145): AST should include original source fidelity — https://luceeserver.atlassian.net/browse/LDEV-6041
- LDEV-6007 (Bug, fixed in 7.1.2.145): AST Component inside cfscript becomes sibling instead of child — https://luceeserver.atlassian.net/browse/LDEV-6007
- LDEV-5715 (Epic, fixed in 7.1.2.144): Add AST (Abstract Syntax Tree) Generation — https://luceeserver.atlassian.net/browse/LDEV-5715
- LDEV-6533 (Bug, fixed in 7.1.2.143): final in a component pseudo-constructor leaks a DataMember object into the variables scope — https://luceeserver.atlassian.net/browse/LDEV-6533
- LDEV-6585 (Bug, fixed in 7.1.2.141): SerializeAISession() drops the system message for engines not built on Lucee's internal session class — https://luceeserver.atlassian.net/browse/LDEV-6585
- LDEV-6030 (Bug, fixed in 7.1.2.138): AST Labeled loops lose their labels — https://luceeserver.atlassian.net/browse/LDEV-6030
- LDEV-6029 (Bug, fixed in 7.1.2.137): AST Script function cachedWithin pre-evaluates timespan expressions — https://luceeserver.atlassian.net/browse/LDEV-6029
- LDEV-6016 (Bug, fixed in 7.1.2.136): Static blocks lose `static` marker in AST — https://luceeserver.atlassian.net/browse/LDEV-6016
- LDEV-5980 (Bug, fixed in 7.1.2.134): AST BIF calls keep adding internal metadata — https://luceeserver.atlassian.net/browse/LDEV-5980
- LDEV-5979 (Bug, fixed in 7.1.2.133): AST isDefined adds extra scope argument — https://luceeserver.atlassian.net/browse/LDEV-5979
- LDEV-5978 (Bug, fixed in 7.1.2.132): AST queryExecute adds extra variable name argument — https://luceeserver.atlassian.net/browse/LDEV-5978
- LDEV-5977 (Bug, fixed in 7.1.2.130): AST Ternary expression alternate value duplicates consequent — https://luceeserver.atlassian.net/browse/LDEV-5977
- LDEV-5969 (Bug, fixed in 7.1.2.129): AST does not capture cffunction/cfargument tag attributes — https://luceeserver.atlassian.net/browse/LDEV-5969
- LDEV-5975 (Bug, fixed in 7.1.2.128): AST dump loses method name in chained method calls — https://luceeserver.atlassian.net/browse/LDEV-5975
- LDEV-6622 (Bug, fixed in 7.1.2.127): AST: LitStringImpl.dump() throws NullPointerException when the string literal value is null — https://luceeserver.atlassian.net/browse/LDEV-6622
- LDEV-6013 (Bug, fixed in 7.1.2.126): AST MemberExpression with string key has computed=false — https://luceeserver.atlassian.net/browse/LDEV-6013
- LDEV-6031 (Bug, fixed in 7.1.2.125): AST cfimport, leaks internal attributes, omits name — https://luceeserver.atlassian.net/browse/LDEV-6031
- LDEV-6032 (Bug, fixed in 7.1.2.124): AST Boolean attribute values parsed incorrectly in both tag and script modes — https://luceeserver.atlassian.net/browse/LDEV-6032
- LDEV-6303 (Bug, fixed in 7.1.2.123): cfproperty default="#expr#" no longer surfaces via Property.getDefault() — https://luceeserver.atlassian.net/browse/LDEV-6303
- LDEV-6354 (Bug, fixed in 7.1.2.122): OSGiUtil.toVersion(String,Version) throws on malformed qualifier, aborting S3 BundleProvider listing (e.g. "javassist-3.9.0.GA copy.jar") — https://luceeserver.atlassian.net/browse/LDEV-6354
- LDEV-6620 (Task, fixed in 7.1.2.121): Test coverage: deserializeJSON() strictMapping with an array of objects — https://luceeserver.atlassian.net/browse/LDEV-6620
- LDEV-6447 (Bug, fixed in 7.1.2.110): sessionInvalidate() creates replacement sessions and can throw after response commit — https://luceeserver.atlassian.net/browse/LDEV-6447
- LDEV-5027 (Bug, fixed in 7.1.2.109): Administrator.cfc does not allow empty default in updateCacheConnection() — https://luceeserver.atlassian.net/browse/LDEV-5027
- LDEV-4211 (Bug, fixed in 7.1.2.108): Using not existing ORM entity within transaction throws incorrect error — https://luceeserver.atlassian.net/browse/LDEV-4211
- LDEV-5314 (Bug, fixed in 7.1.2.107): Time Zone Id issue (IST) in 7.0. — https://luceeserver.atlassian.net/browse/LDEV-5314
- LDEV-2701 (Bug, fixed in 7.1.2.106): Lucee preceision issue — https://luceeserver.atlassian.net/browse/LDEV-2701
- LDEV-6233 (Bug, fixed in 7.1.2.51): QueryImpl: currentRow state survives serialisation, causes stale row reads — https://luceeserver.atlassian.net/browse/LDEV-6233
- LDEV-6462 (Bug, fixed in 7.1.2.32): Removing Classic Scheduler extension also removes /lucee/admin mapping — https://luceeserver.atlassian.net/browse/LDEV-6462
- LDEV-6188 (Bug, fixed in 7.1.2.29): Behavior change — optional arguments absent from arguments scope when nullSupport=true — https://luceeserver.atlassian.net/browse/LDEV-6188
- LDEV-6449 (Bug, fixed in 7.1.2.19): getDisplayPath() can return null, causing NullPointerException in debugger — https://luceeserver.atlassian.net/browse/LDEV-6449
- LDEV-4268 (Bug, fixed in 7.1.2.17): CFML parsing bug with `continue` — https://luceeserver.atlassian.net/browse/LDEV-4268
- LDEV-4246 (Bug, fixed in 7.1.2.17): Static methods fail when called from an abstract class — https://luceeserver.atlassian.net/browse/LDEV-4246
- LDEV-4685 (Bug, fixed in 7.1.2.16): cfloop condition throws error when in tag island — https://luceeserver.atlassian.net/browse/LDEV-4685
- LDEV-4157 (Bug, fixed in 7.1.2.16): Missing parent Statement of Statement error with thread and tag island — https://luceeserver.atlassian.net/browse/LDEV-4157
- LDEV-2734 (Bug, fixed in 7.1.2.16): Tag island inside of tag-based try causes parsing error — https://luceeserver.atlassian.net/browse/LDEV-2734
- LDEV-6508 (Bug, fixed in 7.1.2.9): DecimalFormat number to string conversion serialises on a global lock — https://luceeserver.atlassian.net/browse/LDEV-6508
- LDEV-6492 (Bug, fixed in 7.1.2.3): ExtensionProvider.detail() overwrites lite .lex URL with lite.asc GPG signature for SNAPSHOT classifiers — https://luceeserver.atlassian.net/browse/LDEV-6492
- LDEV-935 (Bug, fixed in 7.1.2.2): Cfbreak always run after cfcontinue with cfsilent — https://luceeserver.atlassian.net/browse/LDEV-935
- LDEV-6510 (Bug, fixed in 7.1.2.2): continue inside a try/catch leaves the loop like a break when the same try/catch also contains a break — https://luceeserver.atlassian.net/browse/LDEV-6510
- LDEV-6503 (Bug, fixed in 7.1.2.1): Request timeout returns a connection with an unread result to the pool, the next request gets another query's result (regression since 6.2.5.6) — https://luceeserver.atlassian.net/browse/LDEV-6503
| Ticket | Type | Summary | Fixed in |
|---|---|---|---|
| LDEV-6664 | Enhancement | Bridge SLF4J 2.x from javaSettings.maven / mavenLoad libraries into Lucee logging | 8.0.0.284 |
| LDEV-6660 | Task | Lucee 8.0: deprecate the perl (Apache ORO) regex engine as default, Lucee 9 defaults to java | 8.0.0.282 |
| LDEV-6659 | Task | 7.1.2: update bundled extensions to latest final releases | 8.0.0.281 |
| LDEV-6618 | Enhancement | AI: support model="auto" with model discovery and modelPreference | 8.0.0.279 |
| LDEV-6621 | Enhancement | Add AIGetConnections() to list configured AI connections | 8.0.0.278 |
| LDEV-6619 | Enhancement | Use the Config log instead of a PageContext lookup for background processes | 8.0.0.277 |
| LDEV-5349 | Enhancement | deserializeJSON(jsonVar=myJSON,strictMapping="query") | 8.0.0.276 |
| LDEV-6617 | Bug | Admin: restart page uses a fixed 740px wide table | 8.0.0.275 |
| LDEV-6616 | Bug | Admin: extension names in the extension tiles are too large for the fixed-size tile | 8.0.0.275 |
| LDEV-6145 | Bug | OSGiUtil.improveFileName() renames bundle JAR without updating Felix, causing "not unique" crash on restart after extension upgrade | 8.0.0.275 |
| LDEV-5857 | Incompatibility | ACF Incompatibility: ReplaceNoCase() Throws Error When Substring Is Empty | 8.0.0.275 |
| LDEV-5852 | Bug | Admin: "Cancel" button on Custom Tags list page resets all form checkbox selections globally | 8.0.0.275 |
| LDEV-5814 | Enhancement | build add -DtestHideJavaStack="true" to hide java stacktraces from test output | 8.0.0.275 |
| LDEV-5786 | Bug | Admin (Dark Mode): Improve Text Contrast and Update version Button Color Differentiation in Lucee 7 | 8.0.0.275 |
| LDEV-5726 | Bug | FileExists() Returns False When URL Contains Spaces | 8.0.0.275 |
| LDEV-5486 | Bug | LSEuroCurrencyFormat() with Empty Locale Showing Illegal Sign | 8.0.0.275 |
| LDEV-5738 | Enhancement | Add scheduled task autoDelete option to the admin | 8.0.0.274 |
| LDEV-4364 | Enhancement | admin compile mappings needs feedback | 8.0.0.273 |
| LDEV-5768 | Bug | Admin: Dark Mode Should Automatically Follow System Settings (Lucee 7) | 8.0.0.272 |
| LDEV-5343 | Enhancement | ?? as Null coalescing operator | 8.0.0.271 |
| LDEV-5748 | Enhancement | Add alias QueryColumnNames() for QueryColumnArray() | 8.0.0.270 |
| LDEV-6615 | Enhancement | Component.duplicate(): share generated property accessors with the duplicate via a bound wrapper (LDEV-6298 v2) | 8.0.0.269 |
| LDEV-6614 | Enhancement | createObject/new for Java classes: remove exception-driven control flow and cache hot lookups | 8.0.0.267 |
| LDEV-6612 | Bug | Lucee 8: maven coordinate without version resolves the latest Central release instead of the locally installed version | 8.0.0.266 |
| LDEV-2454 | Incompatibility | ACF Compatibility for wildcard in this.blockedExtForFileUpload | 8.0.0.265 |
| LDEV-5173 | Enhancement | add support for epoch and epochms for ParseDateTime | 8.0.0.264 |
| LDEV-2024 | Enhancement | Allow multi-character delimiters for ListAppend() | 8.0.0.263 |
| LDEV-6598 | Bug | Logging uses the request/application timezone or the JVM default instead of the server config timezone | 8.0.0.262 |
| LDEV-6530 | Enhancement | ClassicLayout: reduce timestamp allocations per log entry | 8.0.0.262 |
| LDEV-6305 | Bug | cfqueryparam CF_SQL_FLOAT against MSSQL FLOAT column returns no rows | 8.0.0.262 |
| LDEV-6202 | Bug | QueryExecute passes entire options struct as tag attributes, leaking datasource keys | 8.0.0.262 |
| LDEV-6078 | Bug | Bytecode has invalid line numbers, breaking step debugger and creating misleading exceptions | 8.0.0.262 |
| LDEV-6038 | Bug | Comments become empty StringLiteral placeholders in AST | 8.0.0.262 |
| LDEV-6035 | Bug | AST lacks fullname for shorthand script tags like abort; vs cfabort; | 8.0.0.262 |
| LDEV-6034 | Bug | AST should not expose auto-generated closure/lambda names | 8.0.0.262 |
| LDEV-6027 | Bug | Property attributes reordered in AST | 8.0.0.262 |
| LDEV-6022 | Bug | AST String literal concatenation merged at parse time | 8.0.0.262 |
| LDEV-6019 | Bug | Unquoted function attributes after parenthesis fail AST generation | 8.0.0.262 |
| LDEV-6014 | Bug | AST Dynamic property assignment with interpolated key loses structure | 8.0.0.262 |
| LDEV-6008 | Bug | PreserveSingleQuotes evaluated in cfquery AST | 8.0.0.262 |
| LDEV-5987 | Bug | AST Missing parent statement error | 8.0.0.262 |
| LDEV-5986 | Bug | AST Tag islands converted to strings | 8.0.0.262 |
| LDEV-5985 | Bug | type="java" functions crash AST parser | 8.0.0.262 |
| LDEV-5984 | Bug | AST Escaped hashes lose escaping | 8.0.0.262 |
| LDEV-5983 | Bug | AST cffunction body duplicates cfargument comments | 8.0.0.262 |
| LDEV-5803 | Incompatibility | cross engine listDeleteAt function incompatibility | 8.0.0.262 |
| LDEV-4771 | Bug | function scope context cascading and cfloop query | 8.0.0.262 |
| LDEV-4709 | Bug | isClosure Returns `false` on Arrow Functions | 8.0.0.262 |
| LDEV-4160 | Incompatibility | Chaining method on returned object from returned UDF gives syntax error | 8.0.0.262 |
| LDEV-4023 | Bug | arrayEach/Reduce ignores elements with null values | 8.0.0.262 |
| LDEV-4021 | Bug | Throwing serialized/deserialized exception object loses original stacktrace and tag context | 8.0.0.262 |
| LDEV-3188 | Incompatibility | Incompatibility - when using directoryList() with listinfo="name" | 8.0.0.262 |
| LDEV-69 | Bug | param does not support associative array syntax | 8.0.0.261 |
| LDEV-6596 | Bug | Session writes and CSRF tokens lost with storage-backed sessions (Redis) and sessionCluster=true | 8.0.0.261 |
| LDEV-6594 | Bug | CSRF token lost after structClear(session) with storage-backed sessions and sessionCluster=true | 8.0.0.261 |
| LDEV-6573 | Bug | Class::init() can't call a Java static method named init | 8.0.0.261 |
| LDEV-5952 | Bug | internalRequest fails with "Content was already flushed" after resetBuffer() | 8.0.0.261 |
| LDEV-5890 | Incompatibility | Regression: can't parse dates string produced using (long, medium, short) masks | 8.0.0.261 |
| LDEV-5841 | Bug | expandPath behaves strangely with JS223 | 8.0.0.261 |
| LDEV-5837 | Bug | extension version check error | 8.0.0.261 |
| LDEV-5713 | Bug | CVE-2025-48924: Apache Commons Lang | 8.0.0.261 |
| LDEV-4776 | Bug | decimalFormat wrong rounding | 8.0.0.261 |
| LDEV-4495 | Incompatibility | `Struct.find` should support a callback as the first arguments, as per CF | 8.0.0.261 |
| LDEV-4366 | Bug | cfparam takes any random attribute as default value | 8.0.0.261 |
| LDEV-4286 | Bug | nested function(){}; throws byteccode error | 8.0.0.261 |
| LDEV-4151 | Bug | concatenation operator fails inside cffinally inside a function | 8.0.0.261 |
| LDEV-4122 | Incompatibility | Incompatibility - Multiple arguments with the same name in UDF doesn't throw an error | 8.0.0.261 |
| LDEV-4062 | Incompatibility | Arrow function with no body errors in Lucee, but not in Adobe | 8.0.0.261 |
| LDEV-3963 | Bug | Colons (`:`) in function metadata is treated as and equal sign (`=`) instead of part of the identifier | 8.0.0.261 |
| LDEV-3873 | Bug | Array.every incompatibility with ACF | 8.0.0.261 |
| LDEV-3847 | Bug | CFQUERY using attributeCollection fails when inside CFFINALLY | 8.0.0.261 |
| LDEV-3672 | Bug | array out of bounds when dump CFC object with final property | 8.0.0.261 |
| LDEV-3671 | Bug | function metadata does not handle final arguments | 8.0.0.261 |
| LDEV-3619 | Bug | param this.that throws error if preceded by an extra space | 8.0.0.261 |
| LDEV-3020 | Bug | Invalid Bytecode: Expecting a stackmap frame at branch target | 8.0.0.261 |
| LDEV-2970 | Incompatibility | arrayslice() negative offsets off by one | 8.0.0.261 |
| LDEV-2924 | Incompatibility | query.columnList cannot be used with list or string member functions | 8.0.0.261 |
| LDEV-2899 | Bug | booleanFormat(null) throws Can't cast String [] to a boolean | 8.0.0.261 |
| LDEV-2773 | Bug | unscoped thread variable not being found | 8.0.0.261 |
| LDEV-2672 | Incompatibility | left operand of the Elvis operator has to be a variable or a function | 8.0.0.261 |
| LDEV-2417 | Incompatibility | Fat arrow functions shouldn't require parentheses around single parameter | 8.0.0.261 |
| LDEV-2242 | Bug | Implicit getters strong typed in metadata to string | 8.0.0.261 |
| LDEV-2213 | Bug | Cannot set calling scope vars from closures when localMode="modern" | 8.0.0.261 |
| LDEV-2133 | Bug | cfabort thows an error in cfscript implementation with type="page" | 8.0.0.261 |
| LDEV-2027 | Bug | QueryFilter, QueryMap, QueryReduce changes currentRow inside a loop | 8.0.0.261 |
| LDEV-1818 | Bug | Interface Methods require semicolons | 8.0.0.261 |
| LDEV-6070 | Enhancement | Support bracket notation for nested form/URL parameters when formUrlAsStruct=true | 8.0.0.260 |
| LDEV-5094 | Enhancement | Application.cfc onMissingFunction( name, args ) convention to implement dynamic UDFs | 8.0.0.259 |
| LDEV-296 | Bug | Throw an error on unsupported component initMethod | 8.0.0.258 |
| LDEV-5865 | Enhancement | use object[] for argument and local scopes | 8.0.0.256 |
| LDEV-5826 | Enhancement | CFLOG optimise bytecode from tag based approach | 8.0.0.255 |
| LDEV-6345 | Enhancement | Add structIsOrdered() BIF | 8.0.0.254 |
| LDEV-5924 | Enhancement | Pool Size Counter Optimization | 8.0.0.253 |
| LDEV-5933 | Enhancement | UDF Fast Path Optimization | 8.0.0.252 |
| LDEV-694 | Enhancement | Make Apache/IIS virtual directories available for Lucee | 8.0.0.251 |
| LDEV-5887 | Enhancement | add LUCEE_PRECISE_MATH=disabled | 8.0.0.250 |
| LDEV-6053 | Enhancement | Lazy load extension images to reduce startup memory footprint | 8.0.0.249 |
| LDEV-5571 | Enhancement | Use a custom Truststore for SSL certs | 8.0.0.248 |
| LDEV-6591 | Bug | Lucee 8: extensions installed via lucee.extensions / LUCEE_EXTENSIONS without a version are uninstalled again at start-bundles | 8.0.0.245 |
| LDEV-6587 | Bug | createDynamicProxy / implementsJava: returning this or a CFML array to Java throws ClassCastException | 8.0.0.243 |
| LDEV-6588 | Bug | Closures / UDFs as Java interfaces fail with VerifyError | 8.0.0.242 |
| LDEV-6586 | Bug | Config placeholder replacement turns ordered structs into unordered ones | 8.0.0.241 |
| LDEV-6052 | Enhancement | Use java.util.Base64 for base64 encode and precise decode | 8.0.0.238 |
| LDEV-6575 | Bug | invokeImplicitAccessor: implicit getter missing for property in sub component when called inside parent file | 8.0.0.237-SNAPSHOT |
| LDEV-6571 | Enhancement | Sub components: short sub component name not accepted as a return/argument type ("Cannot cast Object type [Component comp] to a value of type [sub]") | 8.0.0.237-SNAPSHOT |
| LDEV-6581 | Bug | Internal downloads should use the server proxy - 8.0 | 8.0.0.235 |
| LDEV-6572 | Enhancement | Use lazy case evaluation for script switch | 8.0.0.234 |
| LDEV-6569 | Enhancement | Regex: cut per-call allocation in the Perl, Java and compat engines | 8.0.0.228 |
| LDEV-6559 | Enhancement | Support looping over any Java Iterable or Collection with for-in and cfloop collection | 8.0.0.227 |
| LDEV-6562 | Bug | Datasource connection pools leak after idle eviction (POOL_MAX_IDLE): pools not closed, MBeans stay registered | 8.0.0.226 |
| LDEV-6553 | Bug | Datasource names with dots are rejected by the Administrator | 8.0.0.226 |
| LDEV-6548 | Bug | Server proxy from .CFConfig.json is ignored in Lucee 7 (getProxyData() always null) | 8.0.0.226 |
| LDEV-5143 | Bug | CFDBInfo Fails on PostgreSQL Tables Created with Quoted Names | 8.0.0.226 |
| LDEV-3739 | Incompatibility | site-wide error page doesn't have "error" variable like ACF | 8.0.0.226 |
| LDEV-6539 | Enhancement | Avoid unnecessary bind for unary ops on local and argument scopes | 8.0.0.222 |
| LDEV-6544 | Bug | Function listener / cfthread `separateScopes=false`: caller's `local` and `arguments` scopes are recycled while used | 8.0.0.221 |
| LDEV-6556 | Enhancement | Core: deploy bundled Maven artifacts to the local Maven repo before installing bundled extensions | 8.0.0.219 |
| LDEV-6557 | Enhancement | Faster REReplace with literal replacements on the perl engine | 8.0.0.217 |
| LDEV-4931 | Enhancement | add inspectTemplate to getApplicationSettings() | 8.0.0.216 |
| LDEV-6546 | Bug | Cache tag clear can abort with NullPointerException and leave stale entries; RamCache tag clear deep-copies every entry | 8.0.0.213 |
| LDEV-6483 | Bug | Server.cfc (onServerStart/onBuild) silently not executed when server .CFConfig.json has no mappings beyond /lucee and /lucee-server | 8.0.0.213 |
| LDEV-3213 | Bug | local class incompatible: stream classdesc serialVersionUID | 8.0.0.213 |
| LDEV-6555 | Enhancement | Maven: support classifiers in all Maven coordinates (groupId:artifactId:version:classifier) | 8.0.0.212 |
| LDEV-6489 | Bug | Spooler logs java.io.EOFException for an empty or truncated .tsk file, deletes the file and does not say which file it was | 8.0.0.212 |
| LDEV-6481 | Bug | NPE on clean boot when Event Gateways auto-start before Component.cfc is deployed | 8.0.0.212 |
| LDEV-6350 | Bug | SpoolerEngineImpl not cleaned up during engine restart | 8.0.0.212 |
| LDEV-5922 | Bug | Operand stack underflow when using for-in loop with try-catch inside finally block | 8.0.0.212 |
| LDEV-5533 | Bug | NPE on invalid inline component syntax | 8.0.0.212 |
| LDEV-5360 | Bug | Query Indexed not working with QueryOfQuery | 8.0.0.212 |
| LDEV-4792 | Incompatibility | Can't call lambda that exists in static scope | 8.0.0.212 |
| LDEV-4698 | Bug | QoQ SQL parser doesn't understand cast with lengths | 8.0.0.212 |
| LDEV-4665 | Bug | Query filter/map functions alter datatypes | 8.0.0.212 |
| LDEV-4250 | Incompatibility | script "break" requires semicolon in Lucee, but not Adobe | 8.0.0.212 |
| LDEV-3914 | Bug | thread statement cannot be used inside an arrow function | 8.0.0.212 |
| LDEV-3095 | Bug | isValid("email") fails on examples from wikipedia | 8.0.0.212 |
| LDEV-3046 | Bug | isValid("email","test <example@exaaple.com> aaa") returns true | 8.0.0.212 |
| LDEV-2122 | Incompatibility | IsValid('email', 'email@example.com,') inconsistency with ACF | 8.0.0.212 |
| LDEV-6515 | Bug | Admin access setting "open" is ignored by cfadmin since multi-mode removal: the server context always requires a password | 8.0.0.209 |
| LDEV-6119 | Bug | ClassicLayout pattern merges message and stacktrace w/out space | 8.0.0.209 |
| LDEV-6517 | Enhancement | Reduce SecureRandom lock contention in RandomUtil (CSRF tokens, cfthread names) | 8.0.0.208 |
| LDEV-6520 | Task | Bundle markdown and SMB extensions on 8.0 (Require-Extension) | 8.0.0.206 |
| LDEV-6476 | Bug | Java serialisation: Soft struct cannot round-trip serialize/deserialize in Lucee 8.0 | 8.0.0.205 |
| LDEV-6475 | Bug | Java serialisation: Array serialVersionUID breaks Lucee 7 deserialise of Lucee 8 streams | 8.0.0.205 |
| LDEV-6513 | Enhancement | Reduce per-call overhead in mapping path resolution | 8.0.0.201 |
| LDEV-6512 | Bug | getInspectTemplate() reads sysprop / env var on every call (8.0) | 8.0.0.200 |
| LDEV-6479 | Bug | Application, server and JEE session scopes use a synchronized map, causing lock contention | 8.0.0.199 |
| LDEV-6509 | Enhancement | Reduce cachedWithin overhead | 8.0.0.198 |
| LDEV-6507 | Bug | Remove Connection: close on cflocation, REST error responses and cfflush interval | 8.0.0.197 |
| LDEV-6506 | Bug | SystemUtil.JAVA_VERSION is 0 on GA Java releases (e.g. 21, 25, 27) | 8.0.0.196 |
| LDEV-6505 | Enhancement | Update ASM to 9.10.1 for Java 27 support | 8.0.0.196 |
| LDEV-6490 | Bug | getMetadata() throws "this.cpRef is null" on a component restored with objectLoad(objectSave()) (7.0 regression) | 8.0.0.194 |
| LDEV-6469 | Bug | Regression: GetMetadata( childCfc ).functions no longer includes inherited methods | 8.0.0.194 |
| LDEV-6458 | Bug | Mail admin UI / SMTP server configuration missing after mail moved to extension (7.1.1.x) | 8.0.0.193 |
| LDEV-6486 | Bug | Minor update from 7.0 to 7.1 (.lco or Admin update) does not install the Mail extension: its Require-Extension entry has no "since" | 8.0.0.192 |
| LDEV-6487 | Bug | isValid("email") on 7.1 / 8.0 uses a temporary regex: rejects o'reilly@example.com, accepts .foo@, user.@ and a..b@ (regression) | 8.0.0.191 |
| LDEV-6485 | Bug | cfmail fails JVM-wide with "jakarta.mail.Provider: com.sun.mail.imap.IMAPProvider not a subtype" once javax.mail was used (7.1 / 8.0) | 8.0.0.191 |
| LDEV-6451 | Bug | updatePassword silently no-ops when admin password is defined via env var / system property | 8.0.0.181 |
| LDEV-6450 | Bug | cfadmin password validation fails on Lucee 8.0 - regression from 7.1 | 8.0.0.176 |
| LDEV-5747 | Bug | concurrent cfschedule updates causing CFConfig corruption | 8.0.0.172-BETA |
| LDEV-6442 | Enhancement | ThreadLocalPageContext.fallbackEnabled() null-ThreadLocal causes JIT deopt cycle, prevents steady-state compilation | 8.0.0.166 |
| LDEV-6441 | Enhancement | UDFPropertiesLight.getArgumentsSet() rebuilds HashSet on every UDF call | 8.0.0.165 |
| LDEV-6439 | Enhancement | PageContextImpl: replace LinkedList with ArrayList for pathList, includePathList, udfs | 8.0.0.162 |
| LDEV-6438 | Enhancement | ListFind / ListFindNoCase — eliminate substring allocation in list scan | 8.0.0.161 |
| LDEV-6432 | Enhancement | Add `compat` regex mode — Java engine with Oro/ACF-compatible replacement syntax + pattern cache | 8.0.0.160 |
| LDEV-6437 | Enhancement | CFMLWriterImpl skip empty BAOS allocation, pool BAOS on WriterPool, raise gzip threshold to 2048 | 8.0.0.159 |
| LDEV-6436 | Enhancement | Streamline response output stream encoding, reduce allocations | 8.0.0.158 |
| LDEV-6435 | Bug | getApplicationSettings() reports misleading regex + listener info on ClassicApplicationContext | 8.0.0.154 |
| LDEV-6434 | Enhancement | use StackWalker for ExceptionUtil.getTagContextLine + CallStackGet | 8.0.0.150 |
| LDEV-6433 | Enhancement | cflocation: gate CallStackGet stack walk behind doesError/doesDebug | 8.0.0.146 |
| LDEV-6430 | Bug | LogUtil.doesDebug returns true at log level INFO | 8.0.0.145 |
| LDEV-6428 | Enhancement | Reduce member function runtime execution overhead | 8.0.0.144 |
| LDEV-6427 | Enhancement | Pool CFMLWriterImpl response buffer on PageContextImpl to eliminate per-request allocations | 8.0.0.142 |
| LDEV-6411 | Task | Add optional Admin MCP Server endpoint for AI-driven server configuration | 8.0.0.111 |
| LDEV-6317 | Enhancement | Replace deprecated REPOSITORY_SONATYPE default with Google Cloud Maven Central mirror | 8.0.0.94 |
| LDEV-6387 | Task | OpenAI AI response: parse multipart content blocks in getAnswers() / isMultiPart() | 8.0.0.83 |
| LDEV-6113 | Bug | Execution log enabled setting lost during ConfigImpl merge to ConfigServerImpl | 8.0.0.81 |
| LDEV-6362 | Task | Eliminate JIT Deoptimisation Storm in Config Getters | 8.0.0.64 |
| LDEV-6220 | Bug | regression: out.log being spammed - ConfigFactoryImpl read the config file | 8.0.0.60 |
| LDEV-6117 | Task | Add lucee.config.validate option to eagerly validate all config at startup without warmup | 7.2.0.31 |
| LDEV-6111 | Task | Add eager config loading mode via ConfigServerImpl.touchAll() for Docker warmup / fail-fast validation | 7.2.0.16 |
| LDEV-6112 | Task | Strict config validation: reject invalid configuration values instead of silently falling back to defaults | 7.2.0.15 |
| LDEV-6109 | Task | Support structured Maven Repository definitions in .CFConfig.json | 7.2.0.13 |
| LDEV-5912 | Bug | Filecopy with HTTP ResourceProvider (aka http resource) makes 5 HEAD requests before downloading | 7.1.3.3 |
| LDEV-6666 | Bug | Fresh install: "could not load the base component" errors because extensions install before core base CFCs are extracted | 7.1.2.176 |
| LDEV-6472 | Bug | lucee-light warmup skips Server.cfc onBuild() on first pass (needs second start) | 7.1.2.175 |
| LDEV-6665 | Bug | Lucee Light logs spurious ERROR "Could not find [/extensions/.index]" on clean boot | 7.1.2.174 |
| LDEV-5193 | Bug | Caster methods like toShort, toInteger, toByte don't check for truncation or overflow | 7.1.2.173 |
| LDEV-5547 | Bug | Property Default Values Type Inconsistency | 7.1.2.172 |
| LDEV-6122 | Bug | XMLNodeStruct.equals() mutates the other object (assignment instead of comparison) | 7.1.2.168 |
| LDEV-6166 | Bug | StructImpl.TYPE_MAX (AccessOrderLimitedSizeMap) is not synchronized | 7.1.2.167 |
| LDEV-6313 | Bug | OSGiUtil._loadBundle drops cause when bundle download fails | 7.1.2.166 |
| LDEV-4424 | Bug | Query Params are not Resolved When Query has Question Mark | 7.1.2.164 |
| LDEV-5834 | Bug | regression: cfexecute listeners corrupt scopes | 7.1.2.162 |
| LDEV-6543 | Bug | QoQ: cast() inside a sub-query fails | 7.1.2.161 |
| LDEV-6567 | Bug | Datasource pool creation can leave a replaced pool unclosed (use putIfAbsent and close loser) | 7.1.2.160 |
| LDEV-3393 | Bug | For-in loop throws NullPointerException when located within finally block | 7.1.2.159 |
| LDEV-6648 | Task | 7.1: bundle final Compress 2.1.0.3 and FTP 1.0.0.8 instead of the RC builds | 7.1.2.158 |
| LDEV-6639 | Bug | mavenLoad resolves optional (<optional>true</optional>) transitive Maven dependencies | 7.1.2.157 |
| LDEV-6545 | Bug | CFMAIL: HTML parts are sent 7bit again (LDEV-5176 flipped the quoted-printable default), long lines break | 7.1.2.156 |
| LDEV-6570 | Bug | Time values (createTime / createODBCTime / cfschedule startTime) are shown 1 hour early in America/Vancouver with timezone data 2026b | 7.1.2.155 |
| LDEV-6579 | Bug | Maven downloads should use the common downloader | 7.1.2.154 |
| LDEV-6610 | Bug | Typed argument with null default fails when omitted with full null support | 7.1.2.153 |
| LDEV-6547 | Bug | dateFormat/timeFormat with an X mask changes the JVM default timezone to CET | 7.1.2.152 |
| LDEV-6036 | Bug | AST adds default type="any" to property when not in source | 7.1.2.151 |
| LDEV-5990 | Bug | AST Function param hint/defaultValue metadata lost | 7.1.2.150 |
| LDEV-6024 | Bug | Computed member expression inside scope access corrupts AST | 7.1.2.149 |
| LDEV-6018 | Bug | AST String concatenation wraps parts in CastExpression with typeAnnotation | 7.1.2.148 |
| LDEV-6015 | Enhancement | AST StringLiteral should include quoteChar to preserve original quote style | 7.1.2.147 |
| LDEV-5989 | Bug | AST Interpolated attribute values have escaped hashes in raw field | 7.1.2.147 |
| LDEV-6028 | Bug | Struct key AST type changes based on separator (: vs =) | 7.1.2.146 |
| LDEV-6017 | Bug | AST Interpolated struct keys become BinaryExpression CONCAT | 7.1.2.146 |
| LDEV-6011 | Bug | Internal function names in AST instead of literal syntax | 7.1.2.146 |
| LDEV-6009 | Enhancement | AST output should include metadata for sourceType and dotNotationUpperCase | 7.1.2.146 |
| LDEV-6006 | Bug | astFromString() breaks on CFML comment syntax in string literals | 7.1.2.146 |
| LDEV-5982 | Bug | AST cflock adds internal id attribute | 7.1.2.146 |
| LDEV-6041 | Bug | AST should include original source fidelity | 7.1.2.145 |
| LDEV-6007 | Bug | AST Component inside cfscript becomes sibling instead of child | 7.1.2.145 |
| LDEV-5715 | Epic | Add AST (Abstract Syntax Tree) Generation | 7.1.2.144 |
| LDEV-6533 | Bug | final in a component pseudo-constructor leaks a DataMember object into the variables scope | 7.1.2.143 |
| LDEV-6585 | Bug | SerializeAISession() drops the system message for engines not built on Lucee's internal session class | 7.1.2.141 |
| LDEV-6030 | Bug | AST Labeled loops lose their labels | 7.1.2.138 |
| LDEV-6029 | Bug | AST Script function cachedWithin pre-evaluates timespan expressions | 7.1.2.137 |
| LDEV-6016 | Bug | Static blocks lose `static` marker in AST | 7.1.2.136 |
| LDEV-5980 | Bug | AST BIF calls keep adding internal metadata | 7.1.2.134 |
| LDEV-5979 | Bug | AST isDefined adds extra scope argument | 7.1.2.133 |
| LDEV-5978 | Bug | AST queryExecute adds extra variable name argument | 7.1.2.132 |
| LDEV-5977 | Bug | AST Ternary expression alternate value duplicates consequent | 7.1.2.130 |
| LDEV-5969 | Bug | AST does not capture cffunction/cfargument tag attributes | 7.1.2.129 |
| LDEV-5975 | Bug | AST dump loses method name in chained method calls | 7.1.2.128 |
| LDEV-6622 | Bug | AST: LitStringImpl.dump() throws NullPointerException when the string literal value is null | 7.1.2.127 |
| LDEV-6013 | Bug | AST MemberExpression with string key has computed=false | 7.1.2.126 |
| LDEV-6031 | Bug | AST cfimport, leaks internal attributes, omits name | 7.1.2.125 |
| LDEV-6032 | Bug | AST Boolean attribute values parsed incorrectly in both tag and script modes | 7.1.2.124 |
| LDEV-6303 | Bug | cfproperty default="#expr#" no longer surfaces via Property.getDefault() | 7.1.2.123 |
| LDEV-6354 | Bug | OSGiUtil.toVersion(String,Version) throws on malformed qualifier, aborting S3 BundleProvider listing (e.g. "javassist-3.9.0.GA copy.jar") | 7.1.2.122 |
| LDEV-6620 | Task | Test coverage: deserializeJSON() strictMapping with an array of objects | 7.1.2.121 |
| LDEV-6447 | Bug | sessionInvalidate() creates replacement sessions and can throw after response commit | 7.1.2.110 |
| LDEV-5027 | Bug | Administrator.cfc does not allow empty default in updateCacheConnection() | 7.1.2.109 |
| LDEV-4211 | Bug | Using not existing ORM entity within transaction throws incorrect error | 7.1.2.108 |
| LDEV-5314 | Bug | Time Zone Id issue (IST) in 7.0. | 7.1.2.107 |
| LDEV-2701 | Bug | Lucee preceision issue | 7.1.2.106 |
| LDEV-6233 | Bug | QueryImpl: currentRow state survives serialisation, causes stale row reads | 7.1.2.51 |
| LDEV-6462 | Bug | Removing Classic Scheduler extension also removes /lucee/admin mapping | 7.1.2.32 |
| LDEV-6188 | Bug | Behavior change — optional arguments absent from arguments scope when nullSupport=true | 7.1.2.29 |
| LDEV-6449 | Bug | getDisplayPath() can return null, causing NullPointerException in debugger | 7.1.2.19 |
| LDEV-4268 | Bug | CFML parsing bug with `continue` | 7.1.2.17 |
| LDEV-4246 | Bug | Static methods fail when called from an abstract class | 7.1.2.17 |
| LDEV-4685 | Bug | cfloop condition throws error when in tag island | 7.1.2.16 |
| LDEV-4157 | Bug | Missing parent Statement of Statement error with thread and tag island | 7.1.2.16 |
| LDEV-2734 | Bug | Tag island inside of tag-based try causes parsing error | 7.1.2.16 |
| LDEV-6508 | Bug | DecimalFormat number to string conversion serialises on a global lock | 7.1.2.9 |
| LDEV-6492 | Bug | ExtensionProvider.detail() overwrites lite .lex URL with lite.asc GPG signature for SNAPSHOT classifiers | 7.1.2.3 |
| LDEV-935 | Bug | Cfbreak always run after cfcontinue with cfsilent | 7.1.2.2 |
| LDEV-6510 | Bug | continue inside a try/catch leaves the loop like a break when the same try/catch also contains a break | 7.1.2.2 |
| LDEV-6503 | Bug | Request timeout returns a connection with an unread result to the pool, the next request gets another query's result (regression since 6.2.5.6) | 7.1.2.1 |
Sourced from the Lucee issue tracker (LDEV).