From 8b7ccc5ed4dd940d22296f4b44bb7b5b6e0516ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B5=A9?= Date: Fri, 18 Aug 2023 13:38:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0SonarApi=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E4=B8=BA=E7=9B=B8=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据retrofit2定义,@GET("/api/execute")会作为绝对路径处理,如果baseUrl为 https://example.com/sonar/, 那么完整地址会变为 https://example.com/api/execute。 如果需要保持子路径作为BaseUrl,那么需要采用相对路径 @GET("api/execute"),这样retrofit2会处理为https://example.com/sonar/api/execute --- .../com/yujunyang/intellij/plugin/sonar/api/SonarApi.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yujunyang/intellij/plugin/sonar/api/SonarApi.java b/src/main/java/com/yujunyang/intellij/plugin/sonar/api/SonarApi.java index bc2a2a0..a7e964e 100644 --- a/src/main/java/com/yujunyang/intellij/plugin/sonar/api/SonarApi.java +++ b/src/main/java/com/yujunyang/intellij/plugin/sonar/api/SonarApi.java @@ -27,13 +27,13 @@ public interface SonarApi { - @GET("/api/navigation/global") + @GET("api/navigation/global") Call navigationGlobal(); - @GET("/api/qualityprofiles/search?defaults=true") + @GET("api/qualityprofiles/search?defaults=true") Call qualityProfilesSearch(); - @GET("/api/rules/search?activation=true&ps=500&f=repo,name,htmlDesc,params,severity") + @GET("api/rules/search?activation=true&ps=500&f=repo,name,htmlDesc,params,severity") Call rulesSearch(@Query("qprofile") String profileKey, @Query("p") int page); } From fc08c5e28a763dd7d28f7150b7b927c0cec0d3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B5=A9?= Date: Fri, 18 Aug 2023 15:29:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E6=9C=89=E7=9A=84sonar=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E6=97=B6=20file=20=E4=B8=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=EF=BC=8C=E5=AF=BC=E8=87=B4psiFile=E4=B8=BAnu?= =?UTF-8?q?ll=EF=BC=8C=E7=A8=8B=E5=BA=8F=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yujunyang/intellij/plugin/sonar/core/Report.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/com/yujunyang/intellij/plugin/sonar/core/Report.java b/src/main/java/com/yujunyang/intellij/plugin/sonar/core/Report.java index 2d352ca..aada203 100644 --- a/src/main/java/com/yujunyang/intellij/plugin/sonar/core/Report.java +++ b/src/main/java/com/yujunyang/intellij/plugin/sonar/core/Report.java @@ -119,6 +119,11 @@ private void analyze() { file = Paths.get(project.getBasePath(), projectRelativePath).toFile(); psiFile = IdeaUtils.getPsiFile(project, file); + // 有的项目psiFile为null,导致后续异常 + if (psiFile == null) { + continue; + } + if (!issues.containsKey(psiFile)) { issues.put(psiFile, new ArrayList<>()); }