2525import io .opentelemetry .opamp .client .internal .response .Response ;
2626import io .opentelemetry .opamp .client .request .service .RequestService ;
2727import java .io .ByteArrayInputStream ;
28+ import java .io .EOFException ;
2829import java .time .Duration ;
2930import java .util .ArrayList ;
31+ import java .util .Arrays ;
3032import java .util .Collections ;
3133import java .util .LinkedList ;
3234import java .util .List ;
@@ -133,8 +135,9 @@ void verifySendingRequest_successNotCalledForNon200() {
133135 }
134136
135137 @ Test
136- void verifySuccessWithInvalidBodyIsConsideredFailure () {
138+ void verifySuccessWithInvalidBodyIsConsideredConnectionFailure () {
137139 ServerToAgent serverToAgent = new ServerToAgent .Builder ().build ();
140+ // This will generate an EOFException
138141 byte [] responseBody = "kablooey!!!" .getBytes (UTF_8 );
139142 HttpSender .Response httpResponse = createFailedResponse (200 , responseBody , null );
140143 requestSender .enqueueResponse (httpResponse );
@@ -145,7 +148,25 @@ void verifySuccessWithInvalidBodyIsConsideredFailure() {
145148 verify (callback , never ()).onRequestSuccess (Response .create (serverToAgent ));
146149 verify (callback , never ()).onRequestFailed (any ());
147150 verify (callback , never ()).onConnectionSuccess ();
148- verify (callback ).onConnectionFailed (any ());
151+ verify (callback ).onConnectionFailed (any (EOFException .class ));
152+ }
153+
154+ @ Test
155+ void verifyIllegalStateExceptionInParsingIsConsideredRequestFailure () {
156+ ServerToAgent serverToAgent = new ServerToAgent .Builder ().build ();
157+ byte [] responseBody = new byte [9024 ];
158+ // This will generate an IllegalStateException
159+ Arrays .fill (responseBody , (byte ) 0x11 );
160+ HttpSender .Response httpResponse = createFailedResponse (200 , responseBody , null );
161+ requestSender .enqueueResponse (httpResponse );
162+
163+ httpRequestService .sendRequest ();
164+
165+ verifySingleRequestSent ();
166+ verify (callback , never ()).onRequestSuccess (Response .create (serverToAgent ));
167+ verify (callback , never ()).onConnectionSuccess ();
168+ verify (callback , never ()).onConnectionFailed (any ());
169+ verify (callback ).onRequestFailed (any (IllegalStateException .class ));
149170 }
150171
151172 @ Test
0 commit comments