Skip to content

camel-ai fixes backport to camel-4.18.x (CAMEL-24526, CAMEL-24529, CAMEL-24530, CAMEL-24534) - #25896

Merged
davsclaus merged 4 commits into
apache:camel-4.18.xfrom
oscerd:backport/camel-ai-4.18.x
Aug 30, 2026
Merged

camel-ai fixes backport to camel-4.18.x (CAMEL-24526, CAMEL-24529, CAMEL-24530, CAMEL-24534)#25896
davsclaus merged 4 commits into
apache:camel-4.18.xfrom
oscerd:backport/camel-ai-4.18.x

Conversation

@oscerd

@oscerd oscerd commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Straight cherry-pick backport to camel-4.18.x of four camel-ai fixes already reviewed and merged on main:

CAMEL-24528 (camel-huggingface) is not included: the camel-huggingface module does not exist on camel-4.18.x.

Each commit is a clean cherry-pick of the merged main commit (no manual conflict resolution). The affected buggy code is present on camel-4.18.x. The added tests compile and pass on this branch.

Claude Code on behalf of oscerd

@oscerd oscerd added the bug Something isn't working label Aug 30, 2026
@oscerd oscerd added this to the 4.18.5 milestone Aug 30, 2026
oscerd and others added 4 commits August 30, 2026 12:23
…of returning no-op predictors

The zoo linear/softmax regression predictors were empty "// TODO: impl" stubs
whose process() did nothing, so a djl:tabular/linear_regression or
tabular/softmax_regression route silently returned the input body unchanged as
if it were the prediction (a silent wrong result). The DJL model zoo publishes no
tabular regression models, and the input/output types of a tabular model are
specific to the user's data, so no generic zoo predictor can exist for these
applications. getZooPredictor now throws a clear RuntimeCamelException for the
tabular applications, pointing users to the supported custom model+translator
path, and the two no-op stub classes are removed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
(cherry picked from commit fecd393)
…stops

Each Zoo*Predictor loads a ZooModel via ModelZoo.loadModel in its constructor and
keeps it for the producer's lifetime, but nothing ever closed it: DJLProducer had
no doStop and AbstractPredictor had no close hook. On route stop or redeploy the
native memory and file handles held by the model were leaked.

Add a close() lifecycle method to AbstractPredictor (a no-op by default, so the
custom predictors that hold no long-lived model are unaffected) and override it in
the zoo predictors and the two zoo base classes (AbstractCvZooPredictor,
AbstractNlpZooPredictor) to close the held model. DJLProducer.doStop now calls
predictor.close().

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
(cherry picked from commit 6fd6606)
…bodies in DJLConverter (apache#25852)

Close the InputStream that DJLConverter opens from File/Path message bodies, fixing a file-handle leak.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit d347583)
…sting them to String

QdrantEmbeddingsDataTypeTransformer mapped every document metadata entry into the
Qdrant payload with ValueFactory.value((String) value). The unchecked cast throws
ClassCastException as soon as a metadata value is not a String, which happens
routinely because LangChain4j document splitters add numeric metadata such as the
chunk index and page number - so a normal ingestion pipeline that stores metadata
fails at runtime.

Convert each value to the matching Qdrant Value type (boolean, integer, double,
otherwise String), mirroring how the pgvector sibling handles Number/Boolean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Andrea Cosentino <ancosen@gmail.com>
(cherry picked from commit 0757d65)
@davsclaus
davsclaus force-pushed the backport/camel-ai-4.18.x branch from 04174fd to 77e0cf3 Compare August 30, 2026 10:23

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Straight cherry-pick backport of four camel-ai fixes (CAMEL-24526, CAMEL-24529, CAMEL-24530, CAMEL-24534) to camel-4.18.x. Each commit matches the merged original on main. CAMEL-24528 (camel-huggingface) is correctly excluded since the module doesn't exist on camel-4.18.x. CI is green.

This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

Claude Code on behalf of Guillaume Nodet

@davsclaus
davsclaus merged commit ae7d458 into apache:camel-4.18.x Aug 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants