Skip to content

Commit

Permalink
Fix - character must be non-negative in JAS issues with a location va…
Browse files Browse the repository at this point in the history
…lue of 0 (#472)
  • Loading branch information
attiasas authored Apr 25, 2024
1 parent e7b68c0 commit 216b35a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
8 changes: 6 additions & 2 deletions src/main/scanLogic/scanManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { ScanResults } from '../types/workspaceIssuesDetails';
import { DependencyUtils } from '../treeDataProviders/utils/dependencyUtils';
import { PackageType } from '../types/projectType';
import { UsageUtils } from '../utils/usageUtils';
import { JasRunner } from './scanRunners/jasRunner';
import { BinaryEnvParams, JasRunner } from './scanRunners/jasRunner';
import { SupportedScans } from './sourceCodeScan/supportedScans';
import { WorkspaceScanDetails } from '../types/workspaceScanDetails';
import { Configuration } from '../utils/configuration';
Expand Down Expand Up @@ -105,10 +105,14 @@ export class ScanManager implements ExtensionComponent {

private runSourceCodeScans(scanDetails: WorkspaceScanDetails, jasRunners: JasRunner[]): Promise<void>[] {
const scansPromises: Promise<void>[] = [];
let params: BinaryEnvParams | undefined;
if (scanDetails.multiScanId) {
params = { msi: scanDetails.multiScanId };
}
for (const runner of jasRunners) {
if (runner.shouldRun()) {
scansPromises.push(
runner.scan({ msi: scanDetails.multiScanId }).catch(error => {
runner.scan(params).catch(error => {
LogUtils.logErrorWithAnalytics(error, this._connectionManager);
scanDetails.status = ScanEventStatus.Failed;
})
Expand Down
2 changes: 1 addition & 1 deletion src/main/scanLogic/scanRunners/analyzerManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ export class AnalyzerManager {
binaryVars.AM_LOG_DIRECTORY = params.executionLogDirectory;
}
// Optional Multi scan id
if (params?.msi) {
if (params?.msi && params.msi !== '') {
binaryVars[AnalyzerManager.ENV_MSI] = params.msi;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@ export abstract class CodeIssueTreeNode extends IssueTreeNode {

constructor(issueId: string, private _parent: CodeFileTreeNode, region: vscode.Range, severity?: Severity, label?: string) {
super(issueId, severity ?? Severity.Unknown, label ?? issueId, vscode.TreeItemCollapsibleState.None);
this._regionWithIssue = new vscode.Range(
// Analyzer locations minimum is 1, vscode positions starts at 0
new vscode.Position(region.start.line - 1, region.start.character - 1),
new vscode.Position(region.end.line - 1, region.end.character - 1)
);
this._regionWithIssue = new vscode.Range(this.toVscodePosition(region.start), this.toVscodePosition(region.end));
this.description = 'line = ' + region.start.line + ', column = ' + region.start.character;
}

Expand All @@ -24,4 +20,12 @@ export abstract class CodeIssueTreeNode extends IssueTreeNode {
public get regionWithIssue(): vscode.Range {
return this._regionWithIssue;
}

// For vscode the minimum value (i.e first row/col) is 0.
// For analyzers, the minimum value is 1. (some uses 0 as well)
private toVscodePosition(position: vscode.Position): vscode.Position {
let line: number = position.line > 0 ? position.line - 1 : 0;
let col: number = position.character > 0 ? position.character - 1 : 0;
return new vscode.Position(line, col);
}
}

0 comments on commit 216b35a

Please sign in to comment.