Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClassCastException when upgrading to Mapstruct 1.6.1 & Java 21 #3717

Closed
saw303 opened this issue Sep 16, 2024 · 4 comments · Fixed by #3718
Closed

ClassCastException when upgrading to Mapstruct 1.6.1 & Java 21 #3717

saw303 opened this issue Sep 16, 2024 · 4 comments · Fixed by #3718
Labels
Milestone

Comments

@saw303
Copy link

saw303 commented Sep 16, 2024

Expected behavior

Mapper gets generated without any error

Actual behavior

Given the following mapper

@Mapper(
    config = MicronautMappingConfig.class,
    imports = {CareProvider.AcceptPatientType.class})
public interface CareProviderMapper {

  @Mapping(target = "active", constant = "true")
  CareProviderLookupOperations.SearchQuery toSearchQuery(
      String query, LocalDate targetDate, int limit);

  @Mapping(target = "id", source = "externalId")
  @Mapping(target = "street", source = "address.street")
  @Mapping(target = "houseNumber", source = "address.houseNumber")
  @Mapping(target = "postalCode", source = "address.postalCode")
  @Mapping(target = "city", source = "address.city")
  @Mapping(
      target = "acceptNewPatients",
      expression = "java( careProvider.acceptPatient() == AcceptPatientType.YES )")
  CareProviderService.CareProviderDto toCareProviderDto(CareProvider careProvider);
}

When I run the compilation it fails with the following error.

> Task compileJava FAILED
CareProviderMapper.java:27: error: Internal error in the mapping processor: java.lang.ClassCastException: class com.sun.tools.javac.code.Symbol$RecordComponent cannot be cast to class javax.lang.model.element.ExecutableElement (com.sun.tools.javac.code.Symbol$RecordComponent is in module jdk.compiler of loader 'app'; javax.lang.model.element.ExecutableElement is in module java.compiler of loader 'platform')       at org.mapstruct.ap.internal.model.common.TypeFactory.getThrownTypes(TypeFactory.java:494)      at org.mapstruct.ap.internal.model.NestedPropertyMappingMethod$Builder.build(NestedPropertyMappingMethod.java:75)       at org.mapstruct.ap.internal.model.PropertyMapping$PropertyMappingBuilder.getSourceRHS(PropertyMapping.java:641)        at org.mapstruct.ap.internal.model.PropertyMapping$PropertyMappingBuilder.build(PropertyMapping.java:232)       at org.mapstruct.ap.internal.model.BeanMappingMethod$Builder.handleDefinedMapping(BeanMappingMethod.java:1474)          at org.mapstruct.ap.internal.model.BeanMappingMethod$Builder.handleDefinedMappings(BeanMappingMethod.java:1165)         at org.mapstruct.ap.internal.model.BeanMappingMethod$Builder.build(BeanMappingMethod.java:292)          at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMappingMethods(MapperCreationProcessor.java:427)      at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMapper(MapperCreationProcessor.java:188)      at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:142)        at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:85)         at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:400)         at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:380)        at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:329)   at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:213)         at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.process(DelegatingProcessor.java:62)    at org.gradle.api.internal.tasks.compile.processing.IsolatingProcessor.process(IsolatingProcessor.java:50)      at org.gradle.api.internal.tasks.compile.processing.DelegatingProcessor.process(DelegatingProcessor.java:62)    at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.access$401(TimeTrackingProcessor.java:37)     at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$5.create(TimeTrackingProcessor.java:99)       at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor$5.create(TimeTrackingProcessor.java:96)       at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.track(TimeTrackingProcessor.java:117)         at org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor.process(TimeTrackingProcessor.java:96)        at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1021)   at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:937)      at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1265)       at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1380)    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1272)        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)   at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)          at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)       at org.gradle.internal.compiler.java.IncrementalCompileTask.call(IncrementalCompileTask.java:92)        at org.gradle.api.internal.tasks.compile.AnnotationProcessingCompileTask.call(AnnotationProcessingCompileTask.java:94)          at org.gradle.api.internal.tasks.compile.ResourceCleaningCompilationTask.call(ResourceCleaningCompilationTask.java:57)          at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:76)       at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:46)       at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)       at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)       at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38)       at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:52)         at org.gradle.api.internal.tasks.compile.AnnotationProcessorDiscoveringCompiler.execute(AnnotationProcessorDiscoveringCompiler.java:38)         at org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:46)     at org.gradle.api.internal.tasks.compile.ModuleApplicationNameWritingCompiler.execute(ModuleApplicationNameWritingCompiler.java:36)     at org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler.execute(DefaultToolchainJavaCompiler.java:57)         at org.gradle.api.tasks.compile.JavaCompile.lambda$createToolchainCompiler$3(JavaCompile.java:204)      at org.gradle.api.internal.tasks.compile.CleaningJavaCompiler.execute(CleaningJavaCompiler.java:53)     at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilerFactory.lambda$createRebuildAllCompiler$0(IncrementalCompilerFactory.java:52)   at org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:70)       at org.gradle.api.internal.tasks.compile.incremental.SelectiveCompiler.execute(SelectiveCompiler.java:44)       at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:66)         at org.gradle.api.internal.tasks.compile.incremental.IncrementalResultStoringCompiler.execute(IncrementalResultStoringCompiler.java:52)         at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:64)          at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler$1.call(CompileJavaBuildOperationReportingCompiler.java:48)          at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)     at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)         at org.gradle.api.internal.tasks.compile.CompileJavaBuildOperationReportingCompiler.execute(CompileJavaBuildOperationReportingCompiler.java:48)         at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:222)    at org.gradle.api.tasks.compile.JavaCompile.performIncrementalCompilation(JavaCompile.java:163)         at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:148)       at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)        at java.base/java.lang.reflect.Method.invoke(Method.java:580)   at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)   at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:45)   at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)   at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.execute(IncrementalTaskAction.java:26)     at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)   at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)          at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)     at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)      at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)          at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)          at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)         at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)         at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)        at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)        at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)          at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)          at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)     at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)         at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)         at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)         at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)         at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)   at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)         at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)   at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)   at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)     at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)     at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)       at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)       at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)       at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)       at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)         at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)         at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)      at org.gradle.internal.execution.steps.BuildCacheStep.executeAndStoreInCache(BuildCacheStep.java:145)   at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$4(BuildCacheStep.java:101)        at java.base/java.util.Optional.orElseGet(Optional.java:364)    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$5(BuildCacheStep.java:101)        at org.gradle.internal.Try$Success.map(Try.java:175)    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithCache(BuildCacheStep.java:85)          at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$0(BuildCacheStep.java:74)          at org.gradle.internal.Either$Left.fold(Either.java:115)        at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)        at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)   at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)   at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)         at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)         at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:75)        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:53)      at java.base/java.util.Optional.orElseGet(Optional.java:364)    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)       at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:35)       at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)    at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)   at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)   at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)         at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)         at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)   at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)   at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:107)      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:56)       at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64)         at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43)         at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)         at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:61)     at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36)     at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)   at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)   at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)   at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)   at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)          at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289)        at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)   at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)   at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)   at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)   at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)        at java.base/java.util.Optional.orElseGet(Optional.java:364)    at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)         at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)         at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)     at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)     at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:48)       at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)       at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:61)          at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127)       at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)       at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)   at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)         at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)       at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)       at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)       at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)     at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)         at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)     at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)       at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)       at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)       at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)     at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:85)       at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)   at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)       at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)       at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)    at java.base/java.lang.Thread.run(Thread.java:1583)
public interface CareProviderMapper {

Steps to reproduce the problem

My global Mapstruct configuration is

@MapperConfig(
    componentModel = "jakarta",
    unmappedTargetPolicy = ReportingPolicy.ERROR,
    injectionStrategy = InjectionStrategy.CONSTRUCTOR,
    nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS,
    nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE
)
public class MicronautMappingConfig {
    public MicronautMappingConfig() {
    }
}

MapStruct Version

1.6.1

@saw303 saw303 added the bug label Sep 16, 2024
@saw303 saw303 changed the title ClassCastException when upgrading to Mapstruct 1.6.1 ClassCastException when upgrading to Mapstruct 1.6.1 & Java 21 Sep 16, 2024
@filiphr filiphr added this to the 1.6.2 milestone Sep 16, 2024
@filiphr
Copy link
Member

filiphr commented Sep 16, 2024

This is caused by the fix we did for #3661. I'll look into it asap and try to do a 1.6.2 release

@filiphr
Copy link
Member

filiphr commented Sep 16, 2024

@saw303 I just released 1.6.2 with a fix for this regression. Can you please try it out? It might take few minutes for this to be available in Maven Central

@vladimirconev
Copy link

vladimirconev commented Sep 16, 2024

@filiphr Thanks for the fix. Confirming that using Mapstruct version 1.6.2, compilation issue is resolved.
Let's wait on @saw303 feedback.

@saw303
Copy link
Author

saw303 commented Sep 16, 2024

@filiphr works again. thank you very much for the quick fix!

ndwlocatieservices added a commit to ndwnu/nls-geometry that referenced this issue Sep 25, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [org.mapstruct:mapstruct-processor](https://mapstruct.org/mapstruct-processor/) ([source](https://github.com/mapstruct/mapstruct)) |  | patch | `1.6.0` -> `1.6.2` |
| [org.mapstruct:mapstruct](https://mapstruct.org/mapstruct/) ([source](https://github.com/mapstruct/mapstruct)) | compile | patch | `1.6.0` -> `1.6.2` |
| [org.locationtech.jts:jts-core](https://www.locationtech.org/projects/technology.jts) ([source](https://github.com/locationtech/jts)) | compile | minor | `1.19.0` -> `1.20.0` |
| [org.springframework.boot:spring-boot-starter-parent](https://spring.io/projects/spring-boot) ([source](https://github.com/spring-projects/spring-boot)) | parent | patch | `3.3.3` -> `3.3.4` |

---

### Release Notes

<details>
<summary>mapstruct/mapstruct (org.mapstruct:mapstruct-processor)</summary>

### [`v1.6.2`](https://github.com/mapstruct/mapstruct/releases/tag/1.6.2)

[Compare Source](mapstruct/mapstruct@1.6.1...1.6.2)

##### Bugs

-   Regression from 1.6.1: ClassCastException when using records ([#&#8203;3717](mapstruct/mapstruct#3717))

### [`v1.6.1`](https://github.com/mapstruct/mapstruct/releases/tag/1.6.1)

[Compare Source](mapstruct/mapstruct@1.6.0...1.6.1)

##### Enhancements

-   Use Java `LinkedHashSet` and `LinkedHashMap` new factory method with known capacity when on Java 19 or later ([#&#8203;3113](mapstruct/mapstruct#3113))

##### Bugs

-   Inverse Inheritance Strategy not working for ignored mappings only with target ([#&#8203;3652](mapstruct/mapstruct#3652))
-   Inconsistent ambiguous mapping method error when using `SubclassMapping`: generic vs raw types ([#&#8203;3668](mapstruct/mapstruct#3668))
-   Fix regression when using `InheritInverseConfiguration` with nested target properties and reversing `target = "."` ([#&#8203;3670](mapstruct/mapstruct#3670))
-   Deep mapping with multiple mappings broken in 1.6.0 ([#&#8203;3667](mapstruct/mapstruct#3667))
-   Two different constants are ignored in 1.6.0 ([#&#8203;3673](mapstruct/mapstruct#3673))
-   Inconsistent ambiguous mapping method error: generic vs raw types in 1.6.0 ([#&#8203;3668](mapstruct/mapstruct#3668))
-   Fix cross module records with interfaces not recognizing accessors ([#&#8203;3661](mapstruct/mapstruct#3661))
-   `@AfterMapping` methods are called twice when using target with builder ([#&#8203;3678](mapstruct/mapstruct#3678))
-   Compile error when using `@AfterMapping` method with Builder and TargetObject ([#&#8203;3703](mapstruct/mapstruct#3703))

##### Behaviour change

##### Inverse Inheritance Strategy not working for ignored mapping...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants