org.elasticsearch.transport.NodeDisconnectedException Java Examples

The following examples show how to use org.elasticsearch.transport.NodeDisconnectedException. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * 初回リクエストでNodeDisconnectedException、リトライ1回目で成功した場合、適切な復帰値が返ること.
 */
@Test
public void 初回リクエストでNodeDisconnectedException_リトライ1回目で成功した場合_適切な復帰値が返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown)
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(2)).doProcess();
    Mockito.verify(requestMock, Mockito.times(0)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #2
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ処理中の特定例外処理からContinueRetryが投げられた後、リトライ処理に移行すること.
 */
@Test
public void リトライ処理中の特定例外処理からContinueRetryが投げられた後_リトライ処理に移行すること() {
    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);

    Mockito.doThrow(toBeThrown) // 初回リクエスト
            .doThrow(toBeThrown) // リトライ1回目
            .doThrow(new SettingsException("foo")) // リトライ2回目. この時は、 #onParticularError()でリトライ継続のために
                                                   // ContinueRetryが投げられる.
            .doThrow(toBeThrown) // リトライ3回目
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    // 初回 + リトライ3回 + 処理成功で、5回呼ばれるはず.
    Mockito.verify(requestMock, Mockito.times(5)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #3
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * 初回リクエストの特定例外処理からContinueRetryが投げられた後、リトライ処理に移行すること.
 */
@Test
public void 初回リクエストの特定例外処理からContinueRetryが投げられた後_リトライ処理に移行すること() {
    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);

    Mockito.doThrow(new SettingsException("foo")) // 初回リクエスト
            .doThrow(toBeThrown) // リトライ1回目
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(3)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #4
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ中に特定例外が発生した場合、特定例外用処理が呼び出されてレスポンスが返ること.
 */
@Test
public void リトライ中にに特定例外が発生した場合_特定例外用処理が呼び出されてレスポンスが返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    EsExceptionForTest toBeThrown2 = Mockito.mock(EsExceptionForTest.class);
    Mockito.doThrow(toBeThrown) // 初回
            .doThrow(toBeThrown) // リトライ1回目
            .doThrow(toBeThrown) // リトライ2回目
            .doThrow(toBeThrown2) // リトライ3回目 特定例外
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(ON_ERROR_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(4)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #5
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ1回目でNodeDisconnectedException, リトライ2回目で成功した場合、適切な復帰値が返ること.
 */
@Test
public void リトライ1回目でNodeDisconnectedException_リトライ2回目で成功した場合_適切な復帰値が返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown) // 初回
            .doThrow(toBeThrown) // リトライ1回目
            .doReturn(SUCCESS_RESPONSE) // リトライ2回目で正常復帰
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    // doProcessが3回呼び出されるはず
    Mockito.verify(requestMock, Mockito.times(3)).doProcess();
    Mockito.verify(requestMock, Mockito.times(0)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #6
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * 初回リクエストでNodeDisconnectedException、リトライ1回目で成功した場合、適切な復帰値が返ること.
 */
@Test
public void 初回リクエストでNodeDisconnectedException_リトライ1回目で成功した場合_適切な復帰値が返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown)
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(2)).doProcess();
    Mockito.verify(requestMock, Mockito.times(0)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #7
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * translogのflush時にNodeDisconnectedExceptionが発生した場合にflushのリトライをすること.
 * @throws Exception 実行中の例外
 */
@Test
public void translogのflush時にNodeDisconnectedExceptionが発生した場合にflushのリトライをすること()
        throws Exception {
    Constructor<FlushTranslogRetryableRequest> constructor = FlushTranslogRetryableRequest.class
            .getDeclaredConstructor(new Class[] {
            EsTranslogHandler.class, Integer.TYPE, Long.TYPE });
    constructor.setAccessible(true);
    EsTranslogHandler handler = new EsTranslogHandler(RETRY_COUNT, 0, null, INDEX_FOR_TEST);
    FlushTranslogRetryableRequest flushMock = Mockito.spy((FlushTranslogRetryableRequest) constructor.newInstance(
            handler, 5, 0L));

    NodeDisconnectedException toBeThrown2 = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown2) // 初回リクエストの例外投入
            .doReturn(null)
            .when(flushMock)
            .doProcess();

    flushMock.doRequest();
    Mockito.verify(flushMock, Mockito.times(2)).doProcess(); // ParticularErroではないのでリトライしないこと
    Mockito.verify(flushMock, Mockito.times(0)).flushTransLog();
}
 
Example #8
Source File: EsRetry2Test.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること.
 */
@Test(expected = EsClientException.EsNoResponseException.class)
public void ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること() {
    PowerMockito.mockStatic(EsClientException.class);
    EsTypeImpl esTypeObject = Mockito.spy(new EsTypeImpl("dummy", "Test", "TestRoutingId", 5, 500, null));

    // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
    // 送出する例外オブジェクトのモックを作成
    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown)
            .when(esTypeObject)
            .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                    Mockito.any(OpType.class), Mockito.anyLong());
    // メソッド呼び出し
    esTypeObject.create("dummyId", null);
    fail("EsNoResponseException should be thrown.");
}
 
Example #9
Source File: EsRetryTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること.
 */
@Test(expected = EsClientException.EsNoResponseException.class)
public void ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること() {
    PowerMockito.mockStatic(EsClientException.class);
    EsTypeImpl esTypeObject = Mockito.spy(new EsTypeImpl("dummy", "Test", "TestRoutingId", 5, 500, null));

    // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
    // 送出する例外オブジェクトのモックを作成
    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown)
            .when(esTypeObject)
            .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                    Mockito.any(OpType.class), Mockito.anyLong());
    // メソッド呼び出し
    esTypeObject.create("dummyId", null);
    fail("EsNoResponseException should be thrown.");
}
 
Example #10
Source File: TransportBaseSQLAction.java    From Elasticsearch with Apache License 2.0 6 votes vote down vote up
private void doExecute(TRequest request, ActionListener<TResponse> listener, final int attempt, UUID jobId, long startTime) {
    statsTables.activeRequestsInc();
    if (disabled) {
        sendResponse(listener, new NodeDisconnectedException(clusterService.localNode(), actionName));
        return;
    }
    try {
        Statement statement = statementCache.get(request.stmt());
        Analysis analysis = analyzer.analyze(statement, getParamContext(request));
        if (analysis.analyzedStatement().isWriteOperation() && settings.getAsBoolean(NODE_READ_ONLY_SETTING, false)) {
            throw new ReadOnlyException();
        }
        processAnalysis(analysis, request, listener, attempt, jobId, startTime);
    } catch (Throwable e) {
        logger.error("Error executing SQLRequest", e);
        sendResponse(listener, buildSQLActionException(e));
        statsTables.jobFinished(jobId, e.getMessage());
    }
}
 
Example #11
Source File: EsRetry2Test.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること.
 */
@Test(expected = EsClientException.EsNoResponseException.class)
public void ドキュメント新規作成時_初回NodeDisconnectedExceptionが発生した場合にリトライを繰り返し最終的にEsClient_EsNoResponseExceptionが返されること() {
    PowerMockito.mockStatic(EsClientException.class);
    EsTypeImpl esTypeObject = Mockito.spy(new EsTypeImpl("dummy", "Test", "TestRoutingId", 5, 500, null));

    // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
    // 送出する例外オブジェクトのモックを作成
    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown)
            .when(esTypeObject)
            .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                    Mockito.any(OpType.class), Mockito.anyLong());
    // メソッド呼び出し
    esTypeObject.create("dummyId", null);
    fail("EsNoResponseException should be thrown.");
}
 
Example #12
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * translogのflush時にNodeDisconnectedExceptionが発生した場合にflushのリトライをすること.
 * @throws Exception 実行中の例外
 */
@Test
public void translogのflush時にNodeDisconnectedExceptionが発生した場合にflushのリトライをすること()
        throws Exception {
    Constructor<FlushTranslogRetryableRequest> constructor = FlushTranslogRetryableRequest.class
            .getDeclaredConstructor(new Class[] {
            EsTranslogHandler.class, Integer.TYPE, Long.TYPE });
    constructor.setAccessible(true);
    EsTranslogHandler handler = new EsTranslogHandler(RETRY_COUNT, 0, null, INDEX_FOR_TEST);
    FlushTranslogRetryableRequest flushMock = Mockito.spy((FlushTranslogRetryableRequest) constructor.newInstance(
            handler, 5, 0L));

    NodeDisconnectedException toBeThrown2 = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown2) // 初回リクエストの例外投入
            .doReturn(null)
            .when(flushMock)
            .doProcess();

    flushMock.doRequest();
    Mockito.verify(flushMock, Mockito.times(2)).doProcess(); // ParticularErroではないのでリトライしないこと
    Mockito.verify(flushMock, Mockito.times(0)).flushTransLog();
}
 
Example #13
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ処理中の特定例外処理からContinueRetryが投げられた後、リトライ処理に移行すること.
 */
@Test
public void リトライ処理中の特定例外処理からContinueRetryが投げられた後_リトライ処理に移行すること() {
    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);

    Mockito.doThrow(toBeThrown) // 初回リクエスト
            .doThrow(toBeThrown) // リトライ1回目
            .doThrow(new SettingsException("foo")) // リトライ2回目. この時は、 #onParticularError()でリトライ継続のために
                                                   // ContinueRetryが投げられる.
            .doThrow(toBeThrown) // リトライ3回目
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    // 初回 + リトライ3回 + 処理成功で、5回呼ばれるはず.
    Mockito.verify(requestMock, Mockito.times(5)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #14
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * 初回リクエストの特定例外処理からContinueRetryが投げられた後、リトライ処理に移行すること.
 */
@Test
public void 初回リクエストの特定例外処理からContinueRetryが投げられた後_リトライ処理に移行すること() {
    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);

    Mockito.doThrow(new SettingsException("foo")) // 初回リクエスト
            .doThrow(toBeThrown) // リトライ1回目
            .doReturn(SUCCESS_RESPONSE)
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(3)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #15
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ中に特定例外が発生した場合、特定例外用処理が呼び出されてレスポンスが返ること.
 */
@Test
public void リトライ中にに特定例外が発生した場合_特定例外用処理が呼び出されてレスポンスが返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    EsExceptionForTest toBeThrown2 = Mockito.mock(EsExceptionForTest.class);
    Mockito.doThrow(toBeThrown) // 初回
            .doThrow(toBeThrown) // リトライ1回目
            .doThrow(toBeThrown) // リトライ2回目
            .doThrow(toBeThrown2) // リトライ3回目 特定例外
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(ON_ERROR_RESPONSE, result);
    Mockito.verify(requestMock, Mockito.times(4)).doProcess();
    Mockito.verify(requestMock, Mockito.times(1)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #16
Source File: AbstractRetryableEsRequestTest.java    From io with Apache License 2.0 6 votes vote down vote up
/**
 * リトライ1回目でNodeDisconnectedException, リトライ2回目で成功した場合、適切な復帰値が返ること.
 */
@Test
public void リトライ1回目でNodeDisconnectedException_リトライ2回目で成功した場合_適切な復帰値が返ること() {

    TestRequest requestMock = Mockito.spy(new TestRequest());

    NodeDisconnectedException toBeThrown = Mockito.mock(NodeDisconnectedException.class);
    Mockito.doThrow(toBeThrown) // 初回
            .doThrow(toBeThrown) // リトライ1回目
            .doReturn(SUCCESS_RESPONSE) // リトライ2回目で正常復帰
            .when(requestMock)
            .doProcess();

    String result = requestMock.doRequest();
    assertEquals(SUCCESS_RESPONSE, result);
    // doProcessが3回呼び出されるはず
    Mockito.verify(requestMock, Mockito.times(3)).doProcess();
    Mockito.verify(requestMock, Mockito.times(0)).onParticularError(Mockito.any(ElasticsearchException.class));
}
 
Example #17
Source File: EsRetry2Test.java    From io with Apache License 2.0 5 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト
                .doThrow(documentAlreadyExists)
                // リトライ1回目
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } finally {
        index.delete();
    }
}
 
Example #18
Source File: SQLOperations.java    From crate with Apache License 2.0 5 votes vote down vote up
private Session createSession(SessionContext sessionContext) {
    if (disabled) {
        throw new NodeDisconnectedException(clusterService.localNode(), "sql");
    }
    return new Session(
        analyzer,
        planner,
        jobsLogs,
        isReadOnly,
        executorProvider.get(),
        userManager.getAccessControl(sessionContext),
        sessionContext);
}
 
Example #19
Source File: EsRetryTest.java    From io with Apache License 2.0 5 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト
                .doThrow(documentAlreadyExists)
                // リトライ1回目
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } catch (Exception e){
    	e.printStackTrace();
    } finally {
        index.delete();
    }
}
 
Example #20
Source File: EsRetry2Test.java    From io with Apache License 2.0 5 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理初回でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。
        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト
                .doThrow(documentAlreadyExists)
                // リトライ1回目
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } catch (Exception e){
    	e.printStackTrace();
    } finally {
        index.delete();
    }
}
 
Example #21
Source File: EsRetryTest.java    From io with Apache License 2.0 4 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。

        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        NoNodeAvailableException esNoNodeAvailableException = Mockito.mock(NoNodeAvailableException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト時の例外
                .doThrow(esNoNodeAvailableException)
                // リトライ1回目
                .doThrow(esNoNodeAvailableException)
                // リトライ2回目
                .doThrow(esNoNodeAvailableException)
                // リトライ3回目
                .doThrow(esNoNodeAvailableException)
                // リトライ4回目
                .doThrow(documentAlreadyExists)
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } catch(Exception e) {
    	e.printStackTrace();
    } finally {
        index.delete();
    }
}
 
Example #22
Source File: EsRetry2Test.java    From io with Apache License 2.0 4 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。

        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        NoNodeAvailableException esNoNodeAvailableException = Mockito.mock(NoNodeAvailableException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト時の例外
                .doThrow(esNoNodeAvailableException)
                // リトライ1回目
                .doThrow(esNoNodeAvailableException)
                // リトライ2回目
                .doThrow(esNoNodeAvailableException)
                // リトライ3回目
                .doThrow(esNoNodeAvailableException)
                // リトライ4回目
                .doThrow(documentAlreadyExists)
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } catch(Exception e) {
    	e.printStackTrace();
    } finally {
        index.delete();
    }
}
 
Example #23
Source File: EsRetry2Test.java    From io with Apache License 2.0 4 votes vote down vote up
/**
 * ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistsExceptionが返された場合に正常なIndexResponseが返されること.
 */
@Test
public void ドキュメント新規作成時_リトライ処理の最大回数終了時点でDocumentAlreadyExistExceptionが返された場合に正常なIndexResponseが返されること() {
    EsIndex index = esClient.idxUser("index_for_test", EsIndex.CATEGORY_AD);
    try {
        index.create();
        EsType type = esClient.type("index_for_test_" + EsIndex.CATEGORY_AD,
                "TypeForTest", "TestRoutingId", 5, 500);
        type.create("dummyId", new HashMap<Object, Object>());
        EsTypeImpl esTypeObject = (EsTypeImpl) Mockito.spy(type);

        // EsType#asyncIndex()が呼ばれた場合に、NodeDisconnectedExceptionを投げる。

        // 送出する例外オブジェクトのモックを作成
        NodeDisconnectedException esDisconnectedException = Mockito.mock(NodeDisconnectedException.class);
        NoNodeAvailableException esNoNodeAvailableException = Mockito.mock(NoNodeAvailableException.class);
        DocumentAlreadyExistsException documentAlreadyExists = Mockito.mock(DocumentAlreadyExistsException.class);
        Mockito.doThrow(esDisconnectedException)
                // 本来のリクエスト時の例外
                .doThrow(esNoNodeAvailableException)
                // リトライ1回目
                .doThrow(esNoNodeAvailableException)
                // リトライ2回目
                .doThrow(esNoNodeAvailableException)
                // リトライ3回目
                .doThrow(esNoNodeAvailableException)
                // リトライ4回目
                .doThrow(documentAlreadyExists)
                .when(esTypeObject)
                .asyncIndex(Mockito.anyString(), Mockito.anyMapOf(String.class, Object.class),
                        Mockito.any(OpType.class), Mockito.anyLong());
        // メソッド呼び出し
        DcIndexResponse response = esTypeObject.create("dummyId", new HashMap<Object, Object>());
        assertNotNull(response);
        assertEquals("index_for_test_" + EsIndex.CATEGORY_AD, response.getIndex());
        assertEquals("dummyId", response.getId());
        assertEquals("TypeForTest", response.getType());
        assertEquals(1, response.getVersion());
    } finally {
        index.delete();
    }
}