Skip to content

Commit 7637da0

Browse files
committed
Improve handling of unexpected crash
Signed-off-by: worksofliam <[email protected]>
1 parent be403c2 commit 7637da0

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

src/views/results/resultSetPanelProvider.ts

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export class ResultSetPanelProvider implements WebviewViewProvider {
2424
// We are assuming the job is the same here.
2525
commands.executeCommand(`vscode-db2i.statement.cancel`, hostJob.id);
2626
}
27-
this.currentQuery.close().then(() => {
28-
this.currentQuery = undefined;
29-
});
27+
this.currentQuery.close();
3028
}
3129
}
3230

@@ -63,28 +61,31 @@ export class ResultSetPanelProvider implements WebviewViewProvider {
6361
}
6462

6563
try {
66-
setCancelButtonVisibility(true);
6764
if (this.currentQuery === undefined) {
6865
// We will need to revisit this if we ever allow multiple result tabs like ACS does
6966
// Query.cleanup();
7067

7168
this.currentQuery = await JobManager.getPagingStatement(message.query, { isClCommand: message.isCL, autoClose: true, isTerseResults: true });
7269
}
7370

74-
let queryResults = this.currentQuery.getState() == QueryState.RUN_MORE_DATA_AVAILABLE ? await this.currentQuery.fetchMore() : await this.currentQuery.run();
75-
76-
const jobId = this.currentQuery.getHostJob().id;
77-
78-
this._view.webview.postMessage({
79-
command: `rows`,
80-
jobId,
81-
rows: queryResults.data,
82-
columnMetaData: queryResults.metadata ? queryResults.metadata.columns : undefined, // Query.fetchMore() doesn't return the metadata
83-
columnHeadings: Configuration.get(`resultsets.columnHeadings`) || 'Name',
84-
queryId: this.currentQuery.getId(),
85-
update_count: queryResults.update_count,
86-
isDone: queryResults.is_done
87-
});
71+
if (this.currentQuery.getState() !== QueryState.RUN_DONE) {
72+
setCancelButtonVisibility(true);
73+
74+
let queryResults = this.currentQuery.getState() == QueryState.RUN_MORE_DATA_AVAILABLE ? await this.currentQuery.fetchMore() : await this.currentQuery.run();
75+
76+
const jobId = this.currentQuery.getHostJob().id;
77+
78+
this._view.webview.postMessage({
79+
command: `rows`,
80+
jobId,
81+
rows: queryResults.data,
82+
columnMetaData: queryResults.metadata ? queryResults.metadata.columns : undefined, // Query.fetchMore() doesn't return the metadata
83+
columnHeadings: Configuration.get(`resultsets.columnHeadings`) || 'Name',
84+
queryId: this.currentQuery.getId(),
85+
update_count: queryResults.update_count,
86+
isDone: queryResults.is_done
87+
});
88+
}
8889

8990
} catch (e) {
9091
this.setError(e.message);

0 commit comments

Comments
 (0)