--- a/test/jdk/com/sun/nio/sctp/SctpMultiChannel/SendFailed.java Thu Nov 21 12:14:28 2019 +0000
+++ b/test/jdk/com/sun/nio/sctp/SctpMultiChannel/SendFailed.java Thu Nov 21 12:14:29 2019 +0000
@@ -98,14 +98,19 @@
new SendFailedNotificationHandler();
ByteBuffer recvBuffer = direct ? allocateDirect(recvBufferSize)
: allocate((recvBufferSize));
- channel.receive(recvBuffer, null, handler);
+ MessageInfo info = channel.receive(recvBuffer, null, handler);
+ debug("receive returned info:" + info);
- // verify sent buffer received by send failed notification
- ByteBuffer buffer = handler.getSendFailedByteBuffer();
- check(buffer.remaining() == sent);
- check(buffer.position() == 0);
- check(buffer.limit() == sent);
- assertSameContent(sendBuffer, handler.getSendFailedByteBuffer());
+ if (handler.receivedSendFailed) {
+ // verify sent buffer received by send failed notification
+ ByteBuffer buffer = handler.getSendFailedByteBuffer();
+ check(buffer.remaining() == sent);
+ check(buffer.position() == 0);
+ check(buffer.limit() == sent);
+ assertSameContent(sendBuffer, handler.getSendFailedByteBuffer());
+ } else {
+ debug("Unexpected event or received data. Check output.");
+ }
}
}
@@ -113,6 +118,7 @@
{
/** Reference to the buffer captured in send failed notification */
private ByteBuffer sentBuffer;
+ boolean receivedSendFailed;
@Override
public HandlerResult handleNotification(
@@ -135,6 +141,7 @@
public HandlerResult handleNotification(
SendFailedNotification notification, Object attachment) {
debug("%nSendFailedNotification: %s. ", notification);
+ receivedSendFailed = true;
sentBuffer = notification.buffer();
return HandlerResult.RETURN;
}