Skip to content

Question about ecj support #6227

Open
Open
@lfi-aud

Description

@lfi-aud

Hi,

We have a project where we use the latest version of spring-boot with java 21 (latest LTS java version).
In a new spring-boot project, no issue is found with the implementation of our use cases. But in the final app, we have a dependency which overrides one of your dependencies.
The dependency we have is jasperreports in version 6.3.0 which has org.eclipse.jdt.core.compiler:ecj:4.3.1 as a dependency.
This one overrides org.eclipse.jdt:ecj:3.33.0 used in org.drools:drools-ecj:10.0.0.

It leads us to the following exception:

Caused by: java.lang.RuntimeException: wrong class format
	at org.drools.ecj.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:295)
	at org.drools.ecj.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:252)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:145)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:141)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:1675)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2819)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getBinding(Scope.java:1930)
	at org.eclipse.jdt.internal.compiler.lookup.BlockScope.getBinding(BlockScope.java:426)
	at org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference.resolveType(QualifiedNameReference.java:992)
	at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:562)
	at org.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:970)
	at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:510)
	at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:265)
	at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:469)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1185)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1295)
	at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:561)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:770)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:470)
	at org.drools.ecj.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:391)
	at org.kie.memorycompiler.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:45)
	at org.drools.mvel.java.JavaDialect.compileAll(JavaDialect.java:418)
	at org.drools.compiler.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:64)
	at org.drools.compiler.compiler.PackageRegistry.compileAll(PackageRegistry.java:88)
	at org.drools.compiler.builder.impl.PackageRegistryManagerImpl.compileAll(PackageRegistryManagerImpl.java:199)
	at org.drools.compiler.builder.impl.processors.ConsequenceCompilationPhase.process(ConsequenceCompilationPhase.java:38)
	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.wireAllRules(KnowledgeBuilderImpl.java:463)
	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRules(KnowledgeBuilderImpl.java:1020)
	at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.doFirstBuildStep(KnowledgeBuilderImpl.java:990)
	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:119)
	at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:109)
	at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:280)
	at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:220)
	at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:84)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:285)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:251)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:198)

Do you plan on updating ecj ? Or do you have a workaround to temporary fix this issue ?

Thank you.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions