Skip to content

Improve documentation for SpelCompilerMode #33223

@quaff

Description

@quaff
class org.springframework.expression.spel.standard.SpelCompilerTests$Bean3 cannot be cast to class org.springframework.expression.spel.standard.SpelCompilerTests$Bean2 (org.springframework.expression.spel.standard.SpelCompilerTests$Bean3 and org.springframework.expression.spel.standard.SpelCompilerTests$Bean2 are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.springframework.expression.spel.standard.SpelCompilerTests$Bean3 cannot be cast to class org.springframework.expression.spel.standard.SpelCompilerTests$Bean2 (org.springframework.expression.spel.standard.SpelCompilerTests$Bean3 and org.springframework.expression.spel.standard.SpelCompilerTests$Bean2 are in unnamed module of loader 'app')
	at org.springframework.expression.spel.generated.CompiledExpression00001.getValue(Unknown Source)
	at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:257)
	at org.springframework.expression.spel.standard.SpelCompilerTests.lambda$changingRegisteredVariableTypeDoesNotResultInFailure$1(SpelCompilerTests.java:95)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfInt.accept(ForEachOps.java:204)
	at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
	at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Here is test case

I think we should recompile if possible whilst registered variable type changing detected, Or document this limitation on javadoc of IMMEDIATE.

Related to #28043

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)type: documentationA documentation task

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions