Skip to content

fix: support full null runtimes - #686

Open
elpete wants to merge 1 commit into
developmentfrom
fix/full-null-uninitialized-state
Open

fix: support full null runtimes#686
elpete wants to merge 1 commit into
developmentfrom
fix/full-null-uninitialized-state

Conversation

@elpete

@elpete elpete commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Summary

ColdBox relied on missing struct keys evaluating like null in a number of lazy-initialization and optional-input paths. Full-null runtimes instead omit those keys, so direct access raised undefined-element errors while Quick's expanded full-null matrix initialized ColdBox and ran application requests.

This change makes those paths explicitly key-aware across framework lifecycle, LogBox, CacheBox, WireBox, rendering, routing, REST, async tasks, and testing helpers. It also makes HTTP Last-Modified comparison use the RFC 1123 GMT instant so Adobe and Lucee agree.

Supports coldbox-modules/quick#154 and coldbox-modules/quick#312.

Regression coverage

The regressions exercise public APIs rather than implementation details:

  • Env.getJavaSystem() lazy initialization
  • Util.getMixerUtil() lazy initialization
  • LogBoxConfig.loadDataDSL() with a minimal public DSL
  • CacheBoxConfig.loadDataDSL() with a minimal public DSL
  • RequestContext.lastModified() HTTP-date behavior
  • a dedicated Adobe 2025 full-null HTTP request that executes the same public APIs in a full-null application

Before the source fix, the Adobe endpoint failed with Element JAVASYSTEM is undefined. Additional full-suite failures exposed the other missing-key paths and were retained as fixes until the complete matrix was clean.

Validation

  • Adobe 2025 full null: 1,329 passed, 0 failed, 0 errored, 7 skipped
  • Lucee 6 full null: 1,304 passed, 0 failed, 0 errored, 2 skipped
  • Lucee 6 normal null mode: 1,304 passed, 0 failed, 0 errored, 2 skipped
  • cfformat checks passed for changed sources and regression fixtures
  • git diff --check passed

Local ColdBox validation used the TestBox full-null corrections proposed in Ortus-Solutions/TestBox#200. The self-contained Adobe endpoint added here does not depend on that PR and is included directly in CI.

@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown

Test Results

0 tests  ±0   0 ✅ ±0   0s ⏱️ ±0s
0 suites ±0   0 💤 ±0 
0 files   ±0   0 ❌ ±0 

Results for commit 4b56616. ± Comparison against base commit 901ceef.

♻️ This comment has been updated with latest results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant