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)