HADOOP-15787. [JDK11] TestIPC.testRTEDuringConnectionSetup fails. Contributed by Zsolt Venczel.

This commit is contained in:
Akira Ajisaka 2019-01-22 10:19:05 +09:00
parent e9962240f0
commit a463cf75a0
No known key found for this signature in database
GPG Key ID: C1EDBB9CA400FD50
1 changed files with 12 additions and 6 deletions

View File

@ -23,7 +23,6 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -641,6 +640,16 @@ public class TestIPC {
} }
} }
/**
* Mock socket class to help inject an exception for HADOOP-7428.
*/
static class MockSocket extends Socket {
@Override
public synchronized void setSoTimeout(int timeout) {
throw new RuntimeException("Injected fault");
}
}
/** /**
* Test that, if a RuntimeException is thrown after creating a socket * Test that, if a RuntimeException is thrown after creating a socket
* but before successfully connecting to the IPC server, that the * but before successfully connecting to the IPC server, that the
@ -654,11 +663,8 @@ public class TestIPC {
SocketFactory spyFactory = spy(NetUtils.getDefaultSocketFactory(conf)); SocketFactory spyFactory = spy(NetUtils.getDefaultSocketFactory(conf));
Mockito.doAnswer(new Answer<Socket>() { Mockito.doAnswer(new Answer<Socket>() {
@Override @Override
public Socket answer(InvocationOnMock invocation) throws Throwable { public Socket answer(InvocationOnMock invocation) {
Socket s = spy((Socket)invocation.callRealMethod()); return new MockSocket();
doThrow(new RuntimeException("Injected fault")).when(s)
.setSoTimeout(anyInt());
return s;
} }
}).when(spyFactory).createSocket(); }).when(spyFactory).createSocket();