Claus Ibsen created CAMEL-25814:
-----------------------------------
Summary: camel-jbang - the AI validator compiles a Java file
alone, so a class that uses another class of the project is refused
Key: CAMEL-25814
URL: https://issues.apache.org/jira/browse/CAMEL-25814
Project: Camel
Issue Type: Bug
Components: camel-jbang
Reporter: Claus Ibsen
Assignee: Claus Ibsen
Fix For: 4.24.0
The AI validator of camel-jbang ({{JavaChecks.validateJava}}, which
{{camel_write_file}} and {{camel validate}} use for a Java file) compiles the
file on its own, against the classpath of the CLI. So a class that uses another
class of the project is refused with "cannot find symbol", although {{camel
run}} compiles the Java files of the project together and runs it fine.
In a benchmark of Oct 18-19 2026 (a local model building a code-first REST
example), the model wrote {{src/main/java/camel/example/Order.java}}:
{code:java}
package camel.example;
import java.util.List;
public record Order(String orderId, String customer, String country, String
status, List<OrderLine> lines) {
}
{code}
and {{OrderLine.java}} next to it, in the same package. {{camel_write_file}}
refused Order.java seven times:
{noformat}
Line 5: cannot find symbol symbol: class OrderLine location: class
camel.example.Order (the class is compiled when camel run starts against the
CLI classpath: Camel and the JDK; another library needs a //DEPS
group:artifact:version line at the top of the Java file, or the dependency
added to the run)
{noformat}
It kept refusing after OrderLine.java was written, and the hint points to a
missing library, which is not the case. The step failed.
{{withSiblingClassHints}} rewrites such a message when the class is a sibling,
but it suggests an import, and a class in the same package needs none.
The fix: compile the file together with the other Java files of the project
(its directory and {{src/main/java}}, as the bean check reads them,
CAMEL-24698), and report the diagnostics of the file being validated only.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)