Search in sources :

Example 51 with Packet

use of com.hazelcast.internal.nio.Packet in project hazelcast by hazelcast.

the class InboundResponseHandlerSupplierTest method whenPacketThrowsException.

// test that is a bad response is send, the processing loop isn't broken
// This test isn't terribly exciting since responses are constructed by
// the system and unlikely to fail.
@Test
public void whenPacketThrowsException() {
    supplier = newSupplier(1);
    supplier.start();
    // create a registered invocation
    final Invocation invocation = newInvocation();
    invocationRegistry.register(invocation);
    final long callId = invocation.op.getCallId();
    // the response flag isn't set; so an exception is thrown.
    Packet badResponse = new Packet(serializationService.toBytes(new NormalResponse("bad", 1, 0, false))).setPacketType(Packet.Type.OPERATION).setConn(mock(ServerConnection.class));
    Consumer<Packet> responseConsumer = supplier.get();
    responseConsumer.accept(badResponse);
    final Packet goodResponse = new Packet(serializationService.toBytes(new NormalResponse("foo", callId, 0, false))).setPacketType(Packet.Type.OPERATION).raiseFlags(FLAG_OP_RESPONSE).setConn(mock(ServerConnection.class));
    responseConsumer.accept(goodResponse);
    assertTrueEventually(() -> {
        Invocation inv = invocationRegistry.get(callId);
        System.out.println(inv);
        assertNull(inv);
    });
}
Also used : Packet(com.hazelcast.internal.nio.Packet) ServerConnection(com.hazelcast.internal.server.ServerConnection) NormalResponse(com.hazelcast.spi.impl.operationservice.impl.responses.NormalResponse) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 52 with Packet

use of com.hazelcast.internal.nio.Packet in project hazelcast by hazelcast.

the class InboundResponseHandlerSupplierTest method whenNoProblemPacket.

private void whenNoProblemPacket(int threadCount) {
    supplier = newSupplier(threadCount);
    supplier.start();
    final Invocation invocation = newInvocation();
    invocationRegistry.register(invocation);
    final long callId = invocation.op.getCallId();
    final Packet response = new Packet(serializationService.toBytes(new NormalResponse("foo", callId, 0, false))).setPacketType(Packet.Type.OPERATION).raiseFlags(FLAG_OP_RESPONSE).setConn(mock(ServerConnection.class));
    supplier.get().accept(response);
    assertTrueEventually(new AssertTask() {

        @Override
        public void run() {
            Invocation inv = invocationRegistry.get(callId);
            System.out.println(inv);
            assertNull(inv);
        }
    });
    assertEquals(1, supplier.responsesNormal());
    assertEquals(0, supplier.responsesBackup());
    assertEquals(0, supplier.responsesError());
    assertEquals(0, supplier.responsesMissing());
    assertEquals(0, supplier.responsesTimeout());
    assertEquals(0, supplier.responseQueueSize());
}
Also used : Packet(com.hazelcast.internal.nio.Packet) ServerConnection(com.hazelcast.internal.server.ServerConnection) AssertTask(com.hazelcast.test.AssertTask) NormalResponse(com.hazelcast.spi.impl.operationservice.impl.responses.NormalResponse)

Example 53 with Packet

use of com.hazelcast.internal.nio.Packet in project hazelcast by hazelcast.

the class OperationExecutorImpl_HandlePacketTest method test_whenPartitionSpecificOperationPacket.

@Test
public void test_whenPartitionSpecificOperationPacket() {
    initExecutor();
    final DummyOperation operation = new DummyOperation(0);
    final Packet packet = new Packet(serializationService.toBytes(operation), operation.getPartitionId()).setPacketType(Packet.Type.OPERATION);
    executor.accept(packet);
    assertTrueEventually(new AssertTask() {

        @Override
        public void run() throws Exception {
            OperationRunner[] partitionHandlers = executor.getPartitionOperationRunners();
            DummyOperationRunner handler = (DummyOperationRunner) partitionHandlers[operation.getPartitionId()];
            assertContains(handler.packets, packet);
        }
    });
}
Also used : Packet(com.hazelcast.internal.nio.Packet) AssertTask(com.hazelcast.test.AssertTask) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 54 with Packet

use of com.hazelcast.internal.nio.Packet in project hazelcast by hazelcast.

the class MockServerConnection method readFromPacket.

private Packet readFromPacket(Packet packet) {
    Packet newPacket;
    PacketIOHelper packetReader = new PacketIOHelper();
    PacketIOHelper packetWriter = new PacketIOHelper();
    ByteBuffer buffer = ByteBuffer.allocate(4096);
    boolean writeDone;
    do {
        writeDone = packetWriter.writeTo(packet, buffer);
        upcast(buffer).flip();
        newPacket = packetReader.readFrom(buffer);
        if (buffer.hasRemaining()) {
            throw new IllegalStateException("Buffer should be empty! " + buffer);
        }
        upcast(buffer).clear();
    } while (!writeDone);
    assertNotNull(newPacket);
    newPacket.setConn(otherConnection);
    return newPacket;
}
Also used : Packet(com.hazelcast.internal.nio.Packet) PacketIOHelper(com.hazelcast.internal.nio.PacketIOHelper) ByteBuffer(java.nio.ByteBuffer)

Example 55 with Packet

use of com.hazelcast.internal.nio.Packet in project hazelcast by hazelcast.

the class OperationRunnerImplTest method runPacket.

@Test
public void runPacket() throws Exception {
    Operation op = new DummyOperation();
    setCallId(op, 1000 * 1000);
    Packet packet = toPacket(local, remote, op);
    operationRunner.run(packet);
}
Also used : Packet(com.hazelcast.internal.nio.Packet) Operation(com.hazelcast.spi.impl.operationservice.Operation) BlockingOperation(com.hazelcast.spi.impl.operationservice.BlockingOperation) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

Packet (com.hazelcast.internal.nio.Packet)65 Test (org.junit.Test)46 QuickTest (com.hazelcast.test.annotation.QuickTest)41 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)19 Operation (com.hazelcast.spi.impl.operationservice.Operation)11 ByteBuffer (java.nio.ByteBuffer)10 NormalResponse (com.hazelcast.spi.impl.operationservice.impl.responses.NormalResponse)9 AssertTask (com.hazelcast.test.AssertTask)6 PacketIOHelper (com.hazelcast.internal.nio.PacketIOHelper)5 SerializationConcurrencyTest (com.hazelcast.internal.serialization.impl.SerializationConcurrencyTest)3 OperationRunner (com.hazelcast.spi.impl.operationexecutor.OperationRunner)3 IOException (java.io.IOException)3 Address (com.hazelcast.cluster.Address)2 MemberHandshake (com.hazelcast.internal.cluster.impl.MemberHandshake)2 HandlerStatus (com.hazelcast.internal.networking.HandlerStatus)2 InternalSerializationService (com.hazelcast.internal.serialization.InternalSerializationService)2 HeapData (com.hazelcast.internal.serialization.impl.HeapData)2 ServerConnection (com.hazelcast.internal.server.ServerConnection)2 ServerConnectionManager (com.hazelcast.internal.server.ServerConnectionManager)2 OperationRunnerFactory (com.hazelcast.spi.impl.operationexecutor.OperationRunnerFactory)2