Skip to content

fix(oracle): BoxLang reads a cf_sql_timestamp back as an unreadable oracle.sql.TIMESTAMP #3714

Closed

Description

@bpamiri

Found by the compat matrix once #3710 (#3708) let the BoxLang + Oracle leg run past fixture population. Before #3710 this leg ran zero specs, so this could not be seen.

Leg: boxlang + oracle, dispatch 36341832355, on #3710's head 8b2a9f814 (current with develop). Totals: 5815 specs, 5786 pass, 0 fail, 5 error, 24 skip.

Error: TimestampRoundTripSpec > "cf_sql_timestamp round-trip (#3302)" > "reads back as a CFML date or as epoch milliseconds":

Can't cast oracle.sql.TIMESTAMP to a string.
  at vendor/wheels/tests/specs/database/TimestampRoundTripSpec.cfc:74

There are two defects:

  1. On BoxLang, Oracle returns a cf_sql_timestamp column as an oracle.sql.TIMESTAMP object. $normalizeDbTimestamp() does not turn that into a CFML date, so shape is "neither". Every framework path that reads a stored timestamp back is affected.
  2. The spec's failure message concatenates the raw readBack value into a string. With a Java object, building the diagnostic throws, and that hides the real assertion. A diagnostic must never crash on a raw object.

Fix: teach the normalizer to read oracle.sql.TIMESTAMP (through its exported JDBC conversion, as a java.sql.Timestamp), and make the spec message print a safe representation of non-simple values.

Blocks 4.1.1: the release gate is every test passing on every matrix leg.

Activity

  1. added
    boxlangBoxLang-specific compatibility issue; tracked but may not gate Lucee/Adobe releases
    on Sep 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    boxlangBoxLang-specific compatibility issue; tracked but may not gate Lucee/Adobe releasesbug

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions