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/BaseBranchDialog.java b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BaseBranchDialog.java index 0845214d..bd5018d1 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BaseBranchDialog.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BaseBranchDialog.java @@ -25,7 +25,7 @@ public class BaseBranchDialog { public BaseBranchDialog() { } - public void open(Display display, Path projectPath, String[] localBranches) { + public void open(Display display, Path projectPath, String... localBranches) { Shell shell = new Shell(display, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM); shell.setText("Choose base branch for net-new issues scanning"); shell.setLayout(new GridLayout(1, false)); diff --git a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BrowserHandler.java b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BrowserHandler.java index 535b9dd0..5413af0e 100644 --- a/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BrowserHandler.java +++ b/plugin/src/main/java/io/snyk/eclipse/plugin/views/snyktoolview/BrowserHandler.java @@ -34,6 +34,7 @@ @SuppressWarnings("restriction") public class BrowserHandler { + private static final int validNumberOfArguments = 5; private Browser browser; private String initScript = ""; @@ -45,7 +46,7 @@ public void initialize() { new BrowserFunction(browser, "openInEditor") { @Override public Object function(Object[] arguments) { - if (arguments.length != 5) { + if (arguments.length != validNumberOfArguments) { return null; } String filePath = (String) arguments[0]; @@ -165,7 +166,7 @@ public CompletableFuture updateBrowserContent(TreeNode node) { } private BaseHtmlProvider getHtmlProvider(TreeNode node) { - var product = ""; + String product; if (node instanceof IssueTreeNode) { product = ((ProductTreeNode) node.getParent().getParent()).getProduct(); } else if (node instanceof ProductTreeNode) { 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()) {