52
52
53
53
public class UtplsqlRunner implements RealtimeReporterEventConsumer {
54
54
private static final Logger logger = Logger .getLogger (UtplsqlRunner .class .getName ());
55
+ private static final int DEBUG_TIMEOUT_SECONDS = 60 *60 ;
55
56
56
57
private final boolean withCodeCoverage ;
57
58
private final List <String > pathList ;
@@ -141,6 +142,7 @@ public void dispose() {
141
142
if (frame != null ) {
142
143
frame .setVisible (false );
143
144
}
145
+ run .setConsumerConn (null );
144
146
}
145
147
146
148
@ SuppressWarnings ("StatementWithEmptyBody" )
@@ -165,7 +167,7 @@ public void process(final RealtimeReporterEvent event) {
165
167
}
166
168
}
167
169
168
- private String getSysdate () {
170
+ public static String getSysdate () {
169
171
final Date dateTime = new Date (System .currentTimeMillis ());
170
172
final SimpleDateFormat df = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSS'000'" );
171
173
return df .format (dateTime );
@@ -183,6 +185,7 @@ private void initRun() {
183
185
run .setTotalNumberOfTests (-1 );
184
186
run .setCurrentTestNumber (0 );
185
187
run .setStatus (UtplsqlResources .getString ("RUNNER_INITIALIZING_TEXT" ));
188
+ run .setConsumerConn (consumerConn );
186
189
panel .setModel (run );
187
190
panel .update (realtimeReporterId );
188
191
}
@@ -200,7 +203,7 @@ private void doProcess(final PostRunEvent event) {
200
203
run .setExecutionTime (event .getExecutionTime ());
201
204
run .setErrorStack (event .getErrorStack ());
202
205
run .setServerOutput (event .getServerOutput ());
203
- run .setStatus (UtplsqlResources .getString ("RUNNER_FINNISHED_TEXT " ));
206
+ run .setStatus (UtplsqlResources .getString ("RUNNER_FINISHED_TEXT " ));
204
207
panel .update (realtimeReporterId );
205
208
}
206
209
@@ -323,26 +326,33 @@ private void produce() {
323
326
324
327
private void consume () {
325
328
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 ();
333
355
}
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 ();
346
356
}
347
357
}
348
358
0 commit comments