Repository navigation
fix: use '/' for the verbose logging file path - #2782
diogodanielsoaresferreira merged 3 commits into
Conversation
The path is passed to the Linux solver container as QUARKUS_LOG_FILE_PATH, so it must not use the host's separator. Path.of(...).toString() produced backslashes on Windows and broke VerboseLoggingExecutionProfileTest there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟢 Approval recommended
The narrow fix matches the container path requirement and existing regression test, with no unresolved findings.
No open issues 🎉
What changed in this PR
This PR fixes verbose logging paths for Linux solver containers when the host runs Windows.
Changes:
- Join the container log path with explicit
/separators instead of host-dependentPath.of(...). - Remove the unused
Pathimport.
| File | Description |
|---|---|
service/definition/src/main/java/ai/timefold/solver/service/definition/impl/executionprofile/verboselogging/VerboseLoggingExecutionProfile.java |
Use Linux separators for the container log path on all hosts. |
Review effort: Balanced
Christopher-Chianelli
left a comment
There was a problem hiding this comment.
Would making LOG_FILE_PATH a Path and convert it to a string inside toEnvironment fix the issue? If so, I would prefer that fix so it can run inside a Windows container too.
Path.toString() also uses the local machine's separator wherever it's called, so the test would also fail. |
Fixes https://github.com/TimefoldAI/timefold-solver/actions/runs/40343643950/job/121644673141
VerboseLoggingExecutionProfilebuiltQUARKUS_LOG_FILE_PATHwithPath.of(...).toString(), which uses the host's separator. The value is a path inside the Linux solver container, so on Windows it came out as\tmp\timefold-execution-artifacts\verbose-logging\solver-debug.logandVerboseLoggingExecutionProfileTest.writesIntoItsOwnSubdirectoryOfTheArtifactsDirectoryfailed on Windows CI.The path is now joined with
/explicitly.