Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/jdi/ExceptionEvent/exception/exception001.java
41161 views
1
/*
2
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
package nsk.jdi.ExceptionEvent.exception;
25
26
import com.sun.jdi.*;
27
import com.sun.jdi.event.*;
28
import com.sun.jdi.request.*;
29
30
import java.io.*;
31
import java.util.Iterator;
32
import java.util.List;
33
34
import nsk.share.*;
35
import nsk.share.jpda.*;
36
import nsk.share.jdi.*;
37
38
39
// This class is the debugger in the test
40
41
public class exception001 {
42
static final int PASSED = 0;
43
static final int FAILED = 2;
44
static final int JCK_STATUS_BASE = 95;
45
46
// time interval to wait for events
47
static final int TIMEOUT_DELTA = 1000; // milliseconds
48
49
// synchronization commands
50
static final String COMMAND_READY = "ready";
51
static final String COMMAND_QUIT = "quit";
52
static final String COMMAND_GO = "go";
53
static final String COMMAND_DONE = "done";
54
static final String COMMAND_ERROR = "error";
55
56
// checked classes names
57
static final String DEBUGGEE_NAME = "nsk.jdi.ExceptionEvent.exception.exception001a";
58
59
static final String USER_EXCEPTION = DEBUGGEE_NAME + "Exception";
60
static final String USER_ERROR = DEBUGGEE_NAME + "Error";
61
static final String USER_THROWABLE = DEBUGGEE_NAME + "Throwable";
62
static final String JAVA_EXCEPTION = "java.lang.NumberFormatException";
63
static final String JAVA_ERROR = "java.lang.StackOverflowError";
64
65
// scaffold objects
66
static private Debugee debuggee;
67
static private VirtualMachine vm;
68
static private IOPipe pipe;
69
static private Log log;
70
static private ArgumentHandler argHandler;
71
static private EventSet eventSet;
72
73
// timeout for waiting events
74
static private long eventTimeout;
75
76
// mirrors for checked classes and threads in debuggee
77
static private ExceptionRequest checkedRequest;
78
static private ReferenceType checkedClass;
79
static private ThreadReference checkedThread;
80
81
static private ReferenceType userException;
82
static private ReferenceType userError;
83
static private ReferenceType userThrowable;
84
85
86
// results of receiving particular events
87
static private boolean userExceptionReceived;
88
static private boolean userErrorReceived;
89
static private boolean userThrowableReceived;
90
static private boolean javaExceptionReceived;
91
static private boolean javaErrorReceived;
92
93
// results of test execution
94
static private boolean eventsReceived;
95
static private boolean testFailed;
96
97
// flag for EventHandler thread
98
static private volatile boolean exceptionsThrown;
99
100
// execute test from command line
101
public static void main (String args[]) {
102
System.exit(run(args, System.out) + JCK_STATUS_BASE);
103
}
104
105
// execute test from JCK-compatible harness
106
public static int run(final String args[], final PrintStream out) {
107
108
testFailed = false;
109
userExceptionReceived = false;
110
userErrorReceived = false;
111
userThrowableReceived = false;
112
javaExceptionReceived = false;
113
javaErrorReceived = false;
114
eventsReceived = false;
115
116
argHandler = new ArgumentHandler(args);
117
log = new Log(out, argHandler);
118
eventTimeout = argHandler.getWaitTime() * 60 * 1000; // milliseconds
119
120
// launch debuggee
121
Binder binder = new Binder(argHandler, log);
122
log.display("Connecting to debuggee");
123
debuggee = binder.bindToDebugee(DEBUGGEE_NAME);
124
debuggee.redirectStderr(log, "exception001a >");
125
126
// create synchronization channel with debuggee
127
pipe = debuggee.createIOPipe();
128
vm = debuggee.VM();
129
EventRequestManager erManager = vm.eventRequestManager();
130
131
// resume debuggee
132
log.display("Resuming debuggee");
133
debuggee.resume();
134
135
// catch exceptions while testing and finally quit debuggee
136
try {
137
138
// wait for debuggee started
139
log.display("Waiting for command: " + COMMAND_READY);
140
String command = pipe.readln();
141
if (!command.equals(COMMAND_READY)) {
142
throw new Failure("TEST BUG: unexpected debuggee's command: " + command);
143
}
144
145
// get mirrors of checked classes in debuggee
146
log.display("Getting loaded classes in debuggee");
147
if ((checkedClass = debuggee.classByName(DEBUGGEE_NAME)) == null) {
148
throw new Failure("TEST BUG: cannot find " + DEBUGGEE_NAME);
149
}
150
151
if ((userException = debuggee.classByName(USER_EXCEPTION)) == null) {
152
throw new Failure("TEST BUG: cannot find " + USER_EXCEPTION);
153
}
154
155
if ((userError = debuggee.classByName(USER_ERROR)) == null) {
156
throw new Failure("TEST BUG: cannot find " + USER_ERROR);
157
}
158
159
if ((userThrowable = debuggee.classByName(USER_THROWABLE)) == null) {
160
throw new Failure("TEST BUG: cannot find " + USER_THROWABLE);
161
}
162
163
// get mirror of main thread in debuggee
164
log.display("Getting reference to main thread");
165
Iterator threadIterator = vm.allThreads().iterator();
166
while (threadIterator.hasNext()) {
167
ThreadReference curThread = (ThreadReference) threadIterator.next();
168
if (curThread.name().equals("main")) {
169
checkedThread = curThread;
170
}
171
}
172
if (checkedThread == null) {
173
throw new Failure("TEST BUG: unable to find reference to main thread");
174
}
175
176
// create ExceptionRequest for all throwable classes (initially disabled)
177
log.display("Creating ExceptionRequest");
178
boolean notifyCaught = true;
179
boolean notifyUncaught = true;
180
if ((checkedRequest = erManager.createExceptionRequest(null, notifyCaught, notifyUncaught)) == null) {
181
throw new Failure("TEST BUG: unable to create ExceptionRequest");
182
}
183
184
// define separate thread for handling received events
185
class EventHandler extends Thread {
186
public void run() {
187
// handle events until all exceptions thrown and
188
// all expected events received
189
while (!(exceptionsThrown && eventsReceived)) {
190
eventSet = null;
191
try {
192
eventSet = vm.eventQueue().remove(TIMEOUT_DELTA);
193
} catch (InterruptedException e) {
194
log.complain("Unexpected InterruptedException while receiving event: " + e);
195
break;
196
}
197
198
if (eventSet == null) {
199
continue;
200
}
201
202
// handle each event from event set
203
EventIterator eventIterator = eventSet.eventIterator();
204
while (eventIterator.hasNext()) {
205
206
Event event = eventIterator.nextEvent();
207
log.display("\nEvent received:\n " + event);
208
209
if (EventFilters.filtered(event))
210
continue;
211
212
// handle ExceptionEvent
213
if (event instanceof ExceptionEvent) {
214
215
ExceptionEvent castedEvent = (ExceptionEvent)event;
216
217
ObjectReference eventThrowable = castedEvent.exception();
218
if (eventThrowable == null) {
219
log.complain("FAILURE 1: ExceptionEvent.exception() returns null");
220
testFailed = true;
221
} else {
222
ReferenceType eventRefType = castedEvent.exception().referenceType();
223
if (eventRefType.equals(userException)) {
224
log.display("ExceptionEvent for " + USER_EXCEPTION + " is received");
225
userExceptionReceived = true;
226
227
Location eventLocation = castedEvent.location();
228
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
229
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
230
testFailed = true;
231
}
232
233
} else if (eventRefType.equals(userError)) {
234
log.display("ExceptionEvent for " + USER_ERROR + " is received");
235
userErrorReceived = true;
236
237
Location eventLocation = castedEvent.location();
238
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
239
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
240
testFailed = true;
241
}
242
243
} else if (eventRefType.equals(userThrowable)) {
244
log.display("ExceptionEvent for " + USER_THROWABLE + " is received");
245
userThrowableReceived = true;
246
247
Location eventLocation = castedEvent.location();
248
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
249
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
250
testFailed = true;
251
}
252
253
} else {
254
String eventTypeName = eventRefType.name();
255
if (eventTypeName.equals(JAVA_EXCEPTION)) {
256
log.display("ExceptionEvent for " + JAVA_EXCEPTION + " is received");
257
javaExceptionReceived = true;
258
} else if (eventTypeName.equals(JAVA_ERROR)) {
259
log.display("ExceptionEvent for " + JAVA_ERROR + " is received");
260
javaErrorReceived = true;
261
}
262
}
263
}
264
265
EventRequest eventRequest = castedEvent.request();
266
if (!(checkedRequest.equals(eventRequest))) {
267
log.complain("FAILURE 4: eventRequest does not equal to checked request");
268
testFailed = true;
269
}
270
ThreadReference eventThread = castedEvent.thread();
271
if (!(checkedThread.equals(eventThread))) {
272
log.complain("FAILURE 5: eventThread does not equal to checked thread");
273
testFailed = true;
274
}
275
VirtualMachine eventMachine = castedEvent.virtualMachine();
276
if (!(vm.equals(eventMachine))) {
277
log.complain("FAILURE 6: eventVirtualMachine does not equal to checked vm");
278
testFailed = true;
279
}
280
}
281
282
// ignore each other events
283
284
} // end of event handling loop
285
286
log.display("Resuming event set");
287
eventSet.resume();
288
289
// check if all expected events received
290
eventsReceived = userExceptionReceived && userErrorReceived
291
&& userThrowableReceived && javaExceptionReceived
292
&& javaErrorReceived;
293
294
} // end of event set handling loop
295
296
log.display("eventHandler completed");
297
298
} // end of run()
299
300
} // end of EventHandler
301
302
// start EventHandler thread
303
EventHandler eventHandler = new EventHandler();
304
log.display("Starting eventHandler");
305
eventHandler.start();
306
307
// enable event request
308
log.display("Enabling ExceptionRequest");
309
checkedRequest.enable();
310
311
// force debuggee to throw exceptions and generate events
312
log.display("Sending command: " + COMMAND_GO);
313
pipe.println(COMMAND_GO);
314
315
log.display("");
316
317
// wait for debuggee completed test case
318
log.display("Waiting for command: " + COMMAND_DONE);
319
command = pipe.readln();
320
if (command.equals(COMMAND_ERROR)) {
321
throw new Failure("TEST BUG: Unable to thrown all exceptions in debuggee");
322
}
323
if (!command.equals(COMMAND_DONE)) {
324
throw new Failure("TEST BUG: unknown debuggee's command: " + command);
325
}
326
327
// notify EventHandler that all checked exceptions thrown in debuggee
328
exceptionsThrown = true;
329
330
log.display("");
331
332
// wait for all expected events received or timeout exceeds
333
log.display("Waiting for all expected events received");
334
try {
335
eventHandler.join(eventTimeout);
336
if (eventHandler.isAlive()) {
337
log.complain("FAILURE 20: Timeout for waiting event was exceeded");
338
eventHandler.interrupt();
339
testFailed = true;
340
}
341
} catch (InterruptedException e) {
342
log.complain("TEST INCOMPLETE: InterruptedException caught while waiting for eventHandler's death");
343
testFailed = true;
344
}
345
346
// complain if not all expected events received
347
if (!userExceptionReceived) {
348
log.complain("FAILURE 9: " + USER_EXCEPTION + " was not received received");
349
testFailed= true;
350
}
351
if (!userErrorReceived) {
352
log.complain("FAILURE 10: " + USER_ERROR + " was not received received");
353
testFailed= true;
354
}
355
if (!userThrowableReceived) {
356
log.complain("FAILURE 11: " + USER_THROWABLE + " was not received received");
357
testFailed= true;
358
}
359
if (!javaExceptionReceived) {
360
log.complain("FAILURE 12: " + JAVA_EXCEPTION + " was not received received");
361
testFailed= true;
362
}
363
if (!javaErrorReceived) {
364
log.complain("FAILURE 13: " + JAVA_ERROR + " was not received received");
365
testFailed= true;
366
}
367
368
// end testing
369
370
} catch (Failure e) {
371
log.complain("TEST FAILURE: " + e.getMessage());
372
testFailed = true;
373
} catch (Exception e) {
374
log.complain("Unexpected exception: " + e);
375
e.printStackTrace(out);
376
testFailed = true;
377
} finally {
378
379
log.display("");
380
381
// disable event request to prevent appearance of further events
382
if (checkedRequest != null && checkedRequest.isEnabled()) {
383
log.display("Disabling event request");
384
checkedRequest.disable();
385
}
386
387
// force debugee to exit
388
log.display("Sending command: " + COMMAND_QUIT);
389
pipe.println(COMMAND_QUIT);
390
391
// wait for debuggee exits and analize its exit code
392
log.display("Waiting for debuggee terminating");
393
int debuggeeStatus = debuggee.endDebugee();
394
if (debuggeeStatus == PASSED + JCK_STATUS_BASE) {
395
log.display("Debuggee PASSED with exit code: " + debuggeeStatus);
396
} else {
397
log.complain("Debuggee FAILED with exit code: " + debuggeeStatus);
398
testFailed = true;
399
}
400
}
401
402
// check test results
403
if (testFailed) {
404
log.complain("TEST FAILED");
405
return FAILED;
406
}
407
408
log.display("TEST PASSED");
409
return PASSED;
410
}
411
}
412
413
414
/*
415
// This class is the debugger in the test
416
417
public class exception001 {
418
static final int PASSED = 0;
419
static final int FAILED = 2;
420
static final int JCK_STATUS_BASE = 95;
421
static final String COMMAND_READY = "ready";
422
static final String COMMAND_QUIT = "quit";
423
static final String COMMAND_GO = "go";
424
static final String DEBUGGEE_NAME = "nsk.jdi.ExceptionEvent.exception.exception001a";
425
static final String USER_EXCEPTION = DEBUGGEE_NAME + "Exception";
426
static final String USER_ERROR = DEBUGGEE_NAME + "Error";
427
static final String USER_THROWABLE = DEBUGGEE_NAME + "Throwable";
428
static final String JAVA_EXCEPTION = "java.lang.NumberFormatException";
429
static final String JAVA_ERROR = "java.lang.StackOverflowError";
430
431
static private Debugee debuggee;
432
static private VirtualMachine vm;
433
static private IOPipe pipe;
434
static private Log log;
435
static private ArgumentHandler argHandler;
436
static private EventSet eventSet;
437
438
static private ExceptionRequest checkedRequest;
439
static private ReferenceType checkedClass;
440
static private ThreadReference checkedThread;
441
442
static private ReferenceType userException;
443
static private ReferenceType userError;
444
static private ReferenceType userThrowable;
445
static private boolean userExceptionReceived;
446
static private boolean userErrorReceived;
447
static private boolean userThrowableReceived;
448
static private boolean javaExceptionReceived;
449
static private boolean javaErrorReceived;
450
451
static private boolean testFailed;
452
453
public static void main (String args[]) {
454
System.exit(run(args, System.out) + JCK_STATUS_BASE);
455
}
456
457
public static int run(final String args[], final PrintStream out) {
458
459
testFailed = false;
460
userExceptionReceived = false;
461
userErrorReceived = false;
462
userThrowableReceived = false;
463
javaExceptionReceived = false;
464
javaErrorReceived = false;
465
466
argHandler = new ArgumentHandler(args);
467
log = new Log(out, argHandler);
468
469
Binder binder = new Binder(argHandler, log);
470
log.display("Connecting to debuggee");
471
debuggee = binder.bindToDebugee(DEBUGGEE_NAME);
472
debuggee.redirectStderr(log, "exception001a >");
473
474
pipe = debuggee.createIOPipe();
475
vm = debuggee.VM();
476
EventRequestManager erManager = debuggee.VM().eventRequestManager();
477
478
log.display("Resuming debuggee");
479
debuggee.resume();
480
481
log.display("Waiting for command: " + COMMAND_READY);
482
String command = pipe.readln();
483
484
while (true) {
485
486
if (!command.equals(COMMAND_READY)) {
487
log.complain("TEST BUG: unexpected debuggee's command: " + command);
488
testFailed = true;
489
break;
490
}
491
492
log.display("Getting loaded classes in debuggee");
493
if ((checkedClass = debuggee.classByName(DEBUGGEE_NAME)) == null) {
494
log.complain("TEST BUG: cannot find " + DEBUGGEE_NAME);
495
testFailed = true;
496
break;
497
}
498
499
if ((userException = debuggee.classByName(USER_EXCEPTION)) == null) {
500
log.complain("TEST BUG: cannot find " + USER_EXCEPTION);
501
testFailed = true;
502
break;
503
}
504
505
if ((userError = debuggee.classByName(USER_ERROR)) == null) {
506
log.complain("TEST BUG: cannot find " + USER_ERROR);
507
testFailed = true;
508
break;
509
}
510
511
if ((userThrowable = debuggee.classByName(USER_THROWABLE)) == null) {
512
log.complain("TEST BUG: cannot find " + USER_THROWABLE);
513
testFailed = true;
514
break;
515
}
516
517
log.display("Getting reference to main thread");
518
Iterator threadIterator = vm.allThreads().iterator();
519
while (threadIterator.hasNext()) {
520
ThreadReference curThread = (ThreadReference) threadIterator.next();
521
if (curThread.name().equals("main")) {
522
checkedThread = curThread;
523
}
524
}
525
if (checkedThread == null) {
526
log.complain("TEST BUG: unable to find reference to main thread");
527
testFailed = true;
528
break;
529
}
530
531
log.display("Creating ExceptionRequest");
532
boolean notifyCaught = true;
533
boolean notifyUncaught = true;
534
if ((checkedRequest = erManager.createExceptionRequest(null, notifyCaught, notifyUncaught)) == null) {
535
log.complain("TEST BUG: unable to create ExceptionRequest");
536
testFailed = true;
537
break;
538
}
539
540
//checkedRequest.addClassFilter(checkedClass);
541
checkedRequest.setSuspendPolicy(EventRequest.SUSPEND_ALL);
542
checkedRequest.enable();
543
log.display("ExceptionRequest is created");
544
545
break;
546
}
547
if (testFailed) {
548
log.display("Sending command: " + COMMAND_QUIT);
549
pipe.println(COMMAND_QUIT);
550
log.display("Waiting for debuggee terminating");
551
debuggee.waitFor();
552
return FAILED;
553
}
554
555
class EventHandler extends Thread {
556
public void run() {
557
eventSet = null;
558
try {
559
isConnected:
560
while (true) {
561
eventSet = vm.eventQueue().remove();
562
563
EventIterator eventIterator = eventSet.eventIterator();
564
while (eventIterator.hasNext()) {
565
566
Event event = eventIterator.nextEvent();
567
568
if (event instanceof VMDisconnectEvent) {
569
break isConnected;
570
}
571
572
if (event instanceof ExceptionEvent) {
573
574
ExceptionEvent castedEvent = (ExceptionEvent)event;
575
576
ObjectReference eventThrowable = castedEvent.exception();
577
if (eventThrowable == null) {
578
log.complain("FAILURE 1: ExceptionEvent.exception() returns null");
579
testFailed = true;
580
} else {
581
ReferenceType eventRefType = castedEvent.exception().referenceType();
582
if (eventRefType.equals(userException)) {
583
log.display("ExceptionEvent for " + USER_EXCEPTION + " is received");
584
userExceptionReceived = true;
585
586
Location eventLocation = castedEvent.location();
587
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
588
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
589
testFailed = true;
590
}
591
592
} else if (eventRefType.equals(userError)) {
593
log.display("ExceptionEvent for " + USER_ERROR + " is received");
594
userErrorReceived = true;
595
596
Location eventLocation = castedEvent.location();
597
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
598
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
599
testFailed = true;
600
}
601
602
} else if (eventRefType.equals(userThrowable)) {
603
log.display("ExceptionEvent for " + USER_THROWABLE + " is received");
604
userThrowableReceived = true;
605
606
Location eventLocation = castedEvent.location();
607
if (!(eventLocation.declaringType().name().equals(DEBUGGEE_NAME))) {
608
log.complain("FAILURE 2: eventLocation.declaringType() does not equal to debuggee class");
609
testFailed = true;
610
}
611
612
} else {
613
String eventTypeName = eventRefType.name();
614
if (eventTypeName.equals(JAVA_EXCEPTION)) {
615
log.display("ExceptionEvent for " + JAVA_EXCEPTION + " is received");
616
javaExceptionReceived = true;
617
} else if (eventTypeName.equals(JAVA_ERROR)) {
618
log.display("ExceptionEvent for " + JAVA_ERROR + " is received");
619
javaErrorReceived = true;
620
}
621
}
622
}
623
624
EventRequest eventRequest = castedEvent.request();
625
if (!(checkedRequest.equals(eventRequest))) {
626
log.complain("FAILURE 4: eventRequest does not equal to checked request");
627
testFailed = true;
628
}
629
ThreadReference eventThread = castedEvent.thread();
630
if (!(checkedThread.equals(eventThread))) {
631
log.complain("FAILURE 5: eventThread does not equal to checked thread");
632
testFailed = true;
633
}
634
VirtualMachine eventMachine = castedEvent.virtualMachine();
635
if (!(vm.equals(eventMachine))) {
636
log.complain("FAILURE 6: eventVirtualMachine does not equal to checked vm");
637
testFailed = true;
638
}
639
}
640
}
641
eventSet.resume();
642
}
643
} catch (InterruptedException e) {
644
} catch (VMDisconnectedException e) {
645
log.complain("TEST INCOMPLETE: caught VMDisconnectedException while waiting for event");
646
testFailed = true;
647
}
648
log.display("eventHandler completed");
649
}
650
}
651
652
EventHandler eventHandler = new EventHandler();
653
log.display("Starting eventHandler");
654
eventHandler.start();
655
656
log.display("Sending command: " + COMMAND_GO);
657
pipe.println(COMMAND_GO);
658
659
try {
660
eventHandler.join(argHandler.getWaitTime()*60000);
661
if (eventHandler.isAlive()) {
662
log.complain("FAILURE 20: Timeout for waiting of event was exceeded");
663
eventHandler.interrupt();
664
testFailed = true;
665
}
666
} catch (InterruptedException e) {
667
log.complain("TEST INCOMPLETE: InterruptedException caught while waiting for eventHandler's death");
668
testFailed = true;
669
}
670
671
log.display("Waiting for debuggee terminating");
672
debuggee.waitFor();
673
674
if (!userExceptionReceived) {
675
log.complain("FAILURE 7: " + USER_EXCEPTION + " was not received received");
676
testFailed= true;
677
}
678
if (!userErrorReceived) {
679
log.complain("FAILURE 8: " + USER_ERROR + " was not received received");
680
testFailed= true;
681
}
682
if (!userThrowableReceived) {
683
log.complain("FAILURE 9: " + USER_THROWABLE + " was not received received");
684
testFailed= true;
685
}
686
if (!javaExceptionReceived) {
687
log.complain("FAILURE 10: " + JAVA_EXCEPTION + " was not received received");
688
testFailed= true;
689
}
690
if (!javaErrorReceived) {
691
log.complain("FAILURE 11: " + JAVA_ERROR + " was not received received");
692
testFailed= true;
693
}
694
695
if (testFailed) return FAILED;
696
return PASSED;
697
}
698
699
}
700
701
*/
702
703