Skip to content

Commit 6f90c82

Browse files
change timeout to 1h for debugging sessions, close session on abort properly
1 parent c3393b5 commit 6f90c82

File tree

1 file changed

+31
-21
lines changed

1 file changed

+31
-21
lines changed

sqldev/src/main/java/org/utplsql/sqldev/runner/UtplsqlRunner.java

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252

5353
public class UtplsqlRunner implements RealtimeReporterEventConsumer {
5454
private static final Logger logger = Logger.getLogger(UtplsqlRunner.class.getName());
55+
private static final int DEBUG_TIMEOUT_SECONDS = 60*60;
5556

5657
private final boolean withCodeCoverage;
5758
private final List<String> pathList;
@@ -141,6 +142,7 @@ public void dispose() {
141142
if (frame != null) {
142143
frame.setVisible(false);
143144
}
145+
run.setConsumerConn(null);
144146
}
145147

146148
@SuppressWarnings("StatementWithEmptyBody")
@@ -165,7 +167,7 @@ public void process(final RealtimeReporterEvent event) {
165167
}
166168
}
167169

168-
private String getSysdate() {
170+
public static String getSysdate() {
169171
final Date dateTime = new Date(System.currentTimeMillis());
170172
final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'000'");
171173
return df.format(dateTime);
@@ -183,6 +185,7 @@ private void initRun() {
183185
run.setTotalNumberOfTests(-1);
184186
run.setCurrentTestNumber(0);
185187
run.setStatus(UtplsqlResources.getString("RUNNER_INITIALIZING_TEXT"));
188+
run.setConsumerConn(consumerConn);
186189
panel.setModel(run);
187190
panel.update(realtimeReporterId);
188191
}
@@ -200,7 +203,7 @@ private void doProcess(final PostRunEvent event) {
200203
run.setExecutionTime(event.getExecutionTime());
201204
run.setErrorStack(event.getErrorStack());
202205
run.setServerOutput(event.getServerOutput());
203-
run.setStatus(UtplsqlResources.getString("RUNNER_FINNISHED_TEXT"));
206+
run.setStatus(UtplsqlResources.getString("RUNNER_FINISHED_TEXT"));
204207
panel.update(realtimeReporterId);
205208
}
206209

@@ -323,26 +326,33 @@ private void produce() {
323326

324327
private void consume() {
325328
try {
326-
logger.fine(() -> "Consuming events from reporter id " + realtimeReporterId + " in realtime...");
327-
final RealtimeReporterDao dao = new RealtimeReporterDao(consumerConn);
328-
dao.consumeReport(realtimeReporterId, this);
329-
logger.fine(() -> "All events consumed.");
330-
if (withCodeCoverage) {
331-
String html = dao.getHtmlCoverage(coverageReporterId);
332-
CodeCoverageReporter.openInBrowser(html);
329+
try {
330+
logger.fine(() -> "Consuming events from reporter id " + realtimeReporterId + " in realtime...");
331+
final RealtimeReporterDao dao = new RealtimeReporterDao(consumerConn);
332+
if (!debug) {
333+
dao.consumeReport(realtimeReporterId, this);
334+
} else {
335+
dao.consumeReport(realtimeReporterId, this, DEBUG_TIMEOUT_SECONDS);
336+
}
337+
logger.fine(() -> "All events consumed.");
338+
if (withCodeCoverage) {
339+
String html = dao.getHtmlCoverage(coverageReporterId);
340+
CodeCoverageReporter.openInBrowser(html);
341+
}
342+
} catch (Exception e) {
343+
logger.severe(() -> "Error while consuming events for reporter id " + realtimeReporterId + ": " + e.getMessage() + ".");
344+
}
345+
} finally {
346+
if (run.getTotalNumberOfTests() < 0) {
347+
run.setStatus(UtplsqlResources.getString("RUNNER_NO_TESTS_FOUND_TEXT"));
348+
run.setExecutionTime((System.currentTimeMillis() - Double.valueOf(run.getStart())) / 1000);
349+
run.setEndTime(getSysdate());
350+
run.setTotalNumberOfTests(0);
351+
panel.update(realtimeReporterId);
352+
}
353+
if (isRunningInSqlDeveloper()) {
354+
dispose();
333355
}
334-
} catch (Exception e) {
335-
logger.severe(() -> "Error while consuming events for reporter id " + realtimeReporterId + ": " + e.getMessage() + ".");
336-
}
337-
if (run.getTotalNumberOfTests() < 0) {
338-
run.setStatus(UtplsqlResources.getString("RUNNER_NO_TESTS_FOUND_TEXT"));
339-
run.setExecutionTime((System.currentTimeMillis() - Double.valueOf(run.getStart())) / 1000);
340-
run.setEndTime(getSysdate());
341-
run.setTotalNumberOfTests(0);
342-
panel.update(realtimeReporterId);
343-
}
344-
if (isRunningInSqlDeveloper()) {
345-
dispose();
346356
}
347357
}
348358

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy