diff --git a/plugin/src/main/java/io/snyk/eclipse/plugin/analytics/TaskProcessor.java b/plugin/src/main/java/io/snyk/eclipse/plugin/analytics/TaskProcessor.java index eef99b9d..3b4d2989 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/analytics/TaskProcessor.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/analytics/TaskProcessor.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Queue; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.function.Consumer; @@ -17,7 +18,7 @@ */ public class TaskProcessor { // left = taskToExecute, right = callback function - private final ConcurrentLinkedQueue, Consumer>> taskQueue = new ConcurrentLinkedQueue<>(); + private final Queue, Consumer>> taskQueue = new ConcurrentLinkedQueue<>(); private TaskProcessor() { CompletableFuture.runAsync(() -> { @@ -39,6 +40,8 @@ public static TaskProcessor getInstance() { } private void start() { + final List, Consumer>> copyForSending = new ArrayList<>(); + while (true) { String authToken = Preferences.getInstance().getAuthToken(); SnykExtendedLanguageClient lc = SnykExtendedLanguageClient.getInstance(); @@ -50,8 +53,9 @@ private void start() { } continue; } - List, Consumer>> copyForSending = new ArrayList<>( - taskQueue); + + copyForSending.clear(); // Clear the list before reuse + copyForSending.addAll(taskQueue); // Add all elements from taskQueue for (Pair, Consumer> event : copyForSending) { try { diff --git a/plugin/src/main/java/io/snyk/eclipse/plugin/html/StaticPageHtmlProvider.java b/plugin/src/main/java/io/snyk/eclipse/plugin/html/StaticPageHtmlProvider.java index 682fa9ff..6985fc0d 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/html/StaticPageHtmlProvider.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/html/StaticPageHtmlProvider.java @@ -161,14 +161,16 @@ public String getSummaryInitHtml() { if (logger == null) { logger = Platform.getLog(getClass()); } - StringBuilder content = new StringBuilder(); + StringBuilder content = new StringBuilder(); try (InputStream inputStream = getClass().getResourceAsStream("/ui/html/ScanSummaryInit.html"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { - String line; - while ((line = reader.readLine()) != null) { - content.append(line).append("\n"); + String line = reader.readLine(); + while (line != null) { + // Process the line here + content.append(line).append(System.lineSeparator()); + line = reader.readLine(); } } catch (IOException e) { SnykLogger.logError(e); diff --git a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/ProductTreeNode.java b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/ProductTreeNode.java index 5329c766..dc1ebe79 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/ProductTreeNode.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/ProductTreeNode.java @@ -117,7 +117,7 @@ public void addChild(BaseTreeNode child) { } private String removePrefix(String value) { - var cleanedValue = value.toString(); + var cleanedValue = value; cleanedValue = cleanedValue.replace(product, ""); return cleanedValue.replace(" - ", ""); } diff --git a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/handlers/CollapseTreeHandler.java b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/handlers/CollapseTreeHandler.java index a0e39318..98e7f971 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/handlers/CollapseTreeHandler.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/handlers/CollapseTreeHandler.java @@ -13,15 +13,15 @@ public Object execute(ExecutionEvent event) throws ExecutionException { String commandId = event.getCommand().getId(); - switch (commandId) { - case "io.snyk.eclipse.plugin.commands.TreeCollapse": + String treeCollapse = "io.snyk.eclipse.plugin.commands.TreeCollapse"; + String treeExpand = "io.snyk.eclipse.plugin.commands.TreeExpand"; + + if (commandId.equals(treeCollapse)) { SnykStartup.getView().getTreeViewer().collapseAll(); - break; - case "io.snyk.eclipse.plugin.commands.TreeExpand": + } else if (commandId.equals(treeExpand)) { SnykStartup.getView().getTreeViewer().expandAll(); - break; } return null; } -} \ No newline at end of file +} diff --git a/plugin/src/main/java/io/snyk/languageserver/ScanState.java b/plugin/src/main/java/io/snyk/languageserver/ScanState.java index 32985144..c36d28b1 100644 --- a/plugin/src/main/java/io/snyk/languageserver/ScanState.java +++ b/plugin/src/main/java/io/snyk/languageserver/ScanState.java @@ -1,5 +1,6 @@ package io.snyk.languageserver; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class ScanState { @@ -7,7 +8,7 @@ private ScanState() { } - private final ConcurrentHashMap scanInProgress = new ConcurrentHashMap<>(); + private final Map scanInProgress = new ConcurrentHashMap<>(); private static ScanState instance = new ScanState(); public static ScanState getInstance() { diff --git a/plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java b/plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java index d932fea6..c7ce3f6d 100644 --- a/plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java +++ b/plugin/src/main/java/io/snyk/languageserver/protocolextension/SnykExtendedLanguageClient.java @@ -367,7 +367,7 @@ public void snykScan(SnykScanParam param) { for (ProductTreeNode productTreeNode : affectedProductTreeNodes) { this.toolView.resetNode(productTreeNode); addInfoNodes(productTreeNode, param.getFolderPath(), issueCache); - populateFileAndIssueNodes(productTreeNode, param.getFolderPath(), issueCache); + populateFileAndIssueNodes(productTreeNode, issueCache); } break; case SCAN_STATE_ERROR: @@ -535,7 +535,7 @@ public void publishDiagnostics316(PublishDiagnostics316Param param) { populateIssueCache(param, filePath); } - private void populateFileAndIssueNodes(ProductTreeNode productTreeNode, String folderPath, + private void populateFileAndIssueNodes(ProductTreeNode productTreeNode, SnykIssueCache issueCache) { var cacheHashMap = issueCache.getCacheByDisplayProduct(productTreeNode.getProduct()); for (var kv : cacheHashMap.entrySet()) {