[issues-1035] fix kotlion incrementalFilter createResource NPE #1037
Open
gerenvip wants to merge 1 commit intoalibaba:developfrom
Open
[issues-1035] fix kotlion incrementalFilter createResource NPE #1037gerenvip wants to merge 1 commit intoalibaba:developfrom
gerenvip wants to merge 1 commit intoalibaba:developfrom
Conversation
8c836ab to
9f6240a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
功能:修复 启用 doc 的场景下, RouteProcessor 基于 kotlion 增量编译Filter时 创建 docWriter 触发JavaNullPointerException
Issues[1035]: #1035
crash 原因:
https://github.com/JetBrains/kotlin/blob/master/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt
override fun init(processingEnv: ProcessingEnvironment) {
if (!kind.canRunIncrementally) {
processor.init(processingEnv)
} else {
val originalFiler = processingEnv.filer
val incrementalFiler = IncrementalFiler(originalFiler)
val incProcEnvironment = IncrementalProcessingEnvironment(processingEnv, incrementalFiler)
processor.init(incProcEnvironment)
incrementalFiler.dependencyCollector = dependencyCollector.value
}
}
执行
processor.init(incProcEnvironment)时 还没有给dependencyCollector赋值,RouteProcessor#init 时mFiler.createResource 会调用 dependencyCollector 导致 空指针
解决方案: