Skip to content

Fixed: One JobSandbox row with sub-millisecond runTime stalls the whole job poller (OFBIZ-13808) - #2578

Merged
mridulpathak merged 1 commit into
apache:trunkfrom
mridulpathak:OFBIZ-13808
Nov 6, 2026
Merged

mridulpathak merged 1 commit into
apache:trunkfrom
mridulpathak:OFBIZ-13808

Conversation

@mridulpathak

Copy link
Copy Markdown
Contributor

PersistedServiceJob parsed JobSandbox.runTime as a string with a formatter limited to three fractional digits, so a runTime with microsecond precision (for example set by SQL on PostgreSQL) threw a DateTimeParseException from JobManager.poll(), which rolled back the poll and stopped every scheduled job while that row remained; the formatter also dropped the milliseconds of normal values. The start time now comes from runTimeEpoch when set, or directly from the runTime timestamp, and the formatter is removed.

PersistedServiceJob formatted JobSandbox.runTime to a string and parsed it back with a formatter that accepts at most three fractional digits, even when runTimeEpoch was set. A runTime with microsecond or nanosecond precision threw a DateTimeParseException inside JobManager.poll(), which rolled back the whole poll, so a single such row stopped every scheduled job. The formatter also read the fraction as microseconds, dropping the milliseconds of a normal value. Use runTimeEpoch when it is set and otherwise take the epoch directly from the runTime timestamp, and remove the now unused formatter.
@github-actions github-actions Bot added the bug label Nov 6, 2026
@mridulpathak
mridulpathak merged commit f4b83d6 into apache:trunk Nov 6, 2026
6 checks passed
@mridulpathak
mridulpathak deleted the OFBIZ-13808 branch November 6, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant