Closed sergioppires closed 3 years ago
Coloco aqui os 2 AMReports (em JSON) gerados pelo InteliJ e pelo Kotlin, para efeitos de comparação. Em uma análise inicial, vejo que todos os annotSchemasMap{} e annotationMetrics estão vazios no InteliJ, mas eles aparecem no Kotlin. irei continuar minha análise e postarei os updates.
Seguem os dois arquivos gerados.
@sergioppires O problema foi identificado. O ASniffer não estava conseguindo achar as métricas de anotações para coletar, com a estratégia que eu estava usando através de um ClassPath Scanning. Fiz uma modificação e disponibilizei uma nova versão do ASniffer com a correção: 2.4.6
implementation("io.github.phillima:asniffer:2.4.6")
Foi possível gerar a pasta asniffer_results
corretamente com o código abaixo:
fun runAsniffer(e: AnActionEvent) {
if (e.project?.basePath != null) {
var basePath = Paths.get(e.project?.basePath).normalize().toString()
val report: AMReport = ASniffer(basePath, basePath, JSONReportAvisuIMP()).collectSingle()
}
}
Descrição do Problema
Resumo Ao tentar executar a serialização para JSON dos resultados do ASniffer dentro de um Plugin para InteliJ, recebemos um null pointer. Ao analisar o código, vejo que algumas métricas possuem dados faltantes. Eu não consegui reproduzir esse bug no código em Java e Kotlin, isso apenas acontece no ecossistema do plugin.
Um adendo, por mais que o Null Pointer aconteça apenas no JSONReportCV, eu percebi que os arquivos gerados para o SV e PV estão menores do que os gerados em Kotlin/Java
Trecho com erro
JSONReportCV().generateReport(report, dirPathResults)
Stack Trace
Exemplo
Plugin com o código usado: https://github.com/sergioppires/asniffer-plugin-integration Projeto Usado como exemplo: https://github.com/spring-projects/spring-retry