google / google/ksp

Please improve error handling

Open
#1,682 2 comments 4 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
3.5k
Forks
415
Avg merge
1d 2h
Merged PRs (30d)
53

Description

I'm getting the following error:

```
> Task :web:status-history:kspKotlin FAILED
e: [ksp] java.lang.NullPointerException
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement(AbstractKotlinElement.kt:527)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement$default(AbstractKotlinElement.kt:507)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinElement.newClassElement(AbstractKotlinElement.kt:483)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$resolvedType$2.invoke(KotlinPropertyElement.kt:48)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$resolvedType$2.invoke(KotlinPropertyElement.kt:47)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement.getResolvedType(KotlinPropertyElement.kt:47)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement.getType(AbstractKotlinPropertyElement.kt:97)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyGetterMethodElement.(KotlinPropertyGetterMethodElement.kt:56)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyGetterMethodElement.(KotlinPropertyGetterMethodElement.kt:47)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$getter$2$1.invoke(KotlinPropertyElement.kt:81)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$getter$2$1.invoke(KotlinPropertyElement.kt:80)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$getter$2.invoke$lambda$0(KotlinPropertyElement.kt:80)
at java.base/java.util.Optional.map(Optional.java:260)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$getter$2.invoke(KotlinPropertyElement.kt:80)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement$getter$2.invoke(KotlinPropertyElement.kt:78)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.KotlinPropertyElement.getGetter(KotlinPropertyElement.kt:78)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement$internalAnnotationMetadata$2.invoke(AbstractKotlinPropertyElement.kt:57)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement$internalAnnotationMetadata$2.invoke(AbstractKotlinPropertyElement.kt:54)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement.getInternalAnnotationMetadata(AbstractKotlinPropertyElement.kt:54)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement.getAnnotationMetadata(AbstractKotlinPropertyElement.kt:87)
at io.micronaut.kotlin.processing.visitor.AbstractKotlinPropertyElement.getAnnotationMetadata(AbstractKotlinPropertyElement.kt:32)
at io.micronaut.core.annotation.AnnotationMetadataDelegate.hasAnnotation(AnnotationMetadataDelegate.java:514)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$declaredNativeProperties$2$3.invoke(KotlinClassElement.kt:136)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$declaredNativeProperties$2$3.invoke(KotlinClassElement.kt:136)
at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:171)
at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194)
at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:809)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$declaredNativeProperties$2.invoke(KotlinClassElement.kt:137)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$declaredNativeProperties$2.invoke(KotlinClassElement.kt:125)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement.getDeclaredNativeProperties(KotlinClassElement.kt:125)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement.getDeclaredSyntheticBeanProperties(KotlinClassElement.kt:295)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement.access$getDeclaredSyntheticBeanProperties(KotlinClassElement.kt:38)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$nativeProperties$2.invoke(KotlinClassElement.kt:119)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement$nativeProperties$2.invoke(KotlinClassElement.kt:113)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement.getNativeProperties(KotlinClassElement.kt:113)
at io.micronaut.kotlin.processing.visitor.KotlinClassElement.getSyntheticBeanProperties(KotlinClassElement.kt:293)
at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor$ElementVisitor.visitMembers(TypeElementSymbolProcessor.kt:281)
at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor$ElementVisitor.visitClassDeclaration(TypeElementSymbolProcessor.kt:272)
at com.google.devtools.ksp.symbol.impl.kotlin.KSClassDeclarationImpl.accept(KSClassDeclarationImpl.kt:135)
at io.micronaut.kotlin.processing.visitor.TypeElementSymbolProcessor.process(TypeElementSymbolProcessor.kt:124)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:306)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$8$1.invoke(KotlinSymbolProcessingExtension.kt:304)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:410)
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:304)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:256)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:247)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:87)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:43)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
```

I know which module of my project is affected, but other than that no clue what's wrong. Kotlin has compilation errors and warnings, but that's gone when using KSP.

**For all I know it could be one of the few thousand classes in that module if it was up to KSP. Please include the analyzed/visited file in the stack trace.**

Luckily I don't have a few thousand classes, I only had to open 15 files to find a wrong import.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.