1 package org.apache.maven.plugin.surefire.booterclient.output;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.util.Queue;
24 import java.util.concurrent.ConcurrentLinkedQueue;
25
26 final class MultipleFailureException
27 extends IOException
28 {
29 private final Queue<Throwable> exceptions = new ConcurrentLinkedQueue<>();
30
31 void addException( Throwable exception )
32 {
33 exceptions.add( exception );
34 }
35
36 boolean hasNestedExceptions()
37 {
38 return !exceptions.isEmpty();
39 }
40
41 @Override
42 public String getLocalizedMessage()
43 {
44 StringBuilder messages = new StringBuilder();
45 for ( Throwable exception : exceptions )
46 {
47 if ( messages.length() != 0 )
48 {
49 messages.append( '\n' );
50 }
51 String message = exception.getLocalizedMessage();
52 messages.append( message == null ? exception.toString() : message );
53 }
54 return messages.toString();
55 }
56
57 @Override
58 public String getMessage()
59 {
60 StringBuilder messages = new StringBuilder();
61 for ( Throwable exception : exceptions )
62 {
63 if ( messages.length() != 0 )
64 {
65 messages.append( '\n' );
66 }
67 String message = exception.getMessage();
68 messages.append( message == null ? exception.toString() : message );
69 }
70 return messages.toString();
71 }
72 }