Example usage for io.netty.handler.codec EncoderException EncoderException

List of usage examples for io.netty.handler.codec EncoderException EncoderException

Introduction

In this page you can find the example usage for io.netty.handler.codec EncoderException EncoderException.

Prototype

public EncoderException(Throwable cause) 

Source Link

Document

Creates a new instance.

Usage

From source file:c5db.codec.ProtostuffEncoder.java

License:Apache License

@Override
protected void encode(ChannelHandlerContext ctx, Message<T> msg, List<Object> out) throws Exception {
    Schema<T> schema = msg.cachedSchema();

    LowCopyProtobufOutput lcpo = new LowCopyProtobufOutput();
    schema.writeTo(lcpo, (T) msg);/*from  ww  w .j  ava  2  s .  c o  m*/

    List<ByteBuffer> buffers = lcpo.buffer.finish();

    long size = lcpo.buffer.size();
    if (size > Integer.MAX_VALUE) {
        throw new EncoderException("Serialized form was too large, actual size: " + size);
    }

    out.add(Unpooled.wrappedBuffer(buffers.toArray(new ByteBuffer[] {})));
}

From source file:com.digitalpetri.modbus.codec.ModbusRequestEncoder.java

License:Apache License

@Override
public ByteBuf encode(ModbusPdu modbusPdu, ByteBuf buffer) throws EncoderException {
    try {// ww  w  .  j  a v a2s  .  c  om
        switch (modbusPdu.getFunctionCode()) {
        case ReadCoils:
            return encodeReadCoils((ReadCoilsRequest) modbusPdu, buffer);

        case ReadDiscreteInputs:
            return encodeReadDiscreteInputs((ReadDiscreteInputsRequest) modbusPdu, buffer);

        case ReadHoldingRegisters:
            return encodeReadHoldingRegisters((ReadHoldingRegistersRequest) modbusPdu, buffer);

        case ReadInputRegisters:
            return encodeReadInputRegisters((ReadInputRegistersRequest) modbusPdu, buffer);

        case WriteSingleCoil:
            return encodeWriteSingleCoil((WriteSingleCoilRequest) modbusPdu, buffer);

        case WriteSingleRegister:
            return encodeWriteSingleRegister((WriteSingleRegisterRequest) modbusPdu, buffer);

        case WriteMultipleCoils:
            return encodeWriteMultipleCoils((WriteMultipleCoilsRequest) modbusPdu, buffer);

        case WriteMultipleRegisters:
            return encodeWriteMultipleRegisters((WriteMultipleRegistersRequest) modbusPdu, buffer);

        case MaskWriteRegister:
            return encodeMaskWriteRegister((MaskWriteRegisterRequest) modbusPdu, buffer);

        default:
            throw new EncoderException("FunctionCode not supported: " + modbusPdu.getFunctionCode());
        }
    } finally {
        ReferenceCountUtil.release(modbusPdu);
    }
}

From source file:com.digitalpetri.modbus.codec.ModbusResponseEncoder.java

License:Apache License

@Override
public ByteBuf encode(ModbusPdu modbusPdu, ByteBuf buffer) throws EncoderException {
    try {//ww w  .  j  a v  a 2  s .c om
        if (modbusPdu instanceof ExceptionResponse) {
            return encodeExceptionResponse((ExceptionResponse) modbusPdu, buffer);
        } else {
            switch (modbusPdu.getFunctionCode()) {
            case ReadCoils:
                return encodeReadCoils((ReadCoilsResponse) modbusPdu, buffer);

            case ReadDiscreteInputs:
                return encodeReadDiscreteInputs((ReadDiscreteInputsResponse) modbusPdu, buffer);

            case ReadHoldingRegisters:
                return encodeReadHoldingRegisters((ReadHoldingRegistersResponse) modbusPdu, buffer);

            case ReadInputRegisters:
                return encodeReadInputRegisters((ReadInputRegistersResponse) modbusPdu, buffer);

            case WriteSingleCoil:
                return encodeWriteSingleCoil((WriteSingleCoilResponse) modbusPdu, buffer);

            case WriteSingleRegister:
                return encodeWriteSingleRegister((WriteSingleRegisterResponse) modbusPdu, buffer);

            case WriteMultipleCoils:
                return encodeWriteMultipleCoils((WriteMultipleCoilsResponse) modbusPdu, buffer);

            case WriteMultipleRegisters:
                return encodeWriteMultipleRegisters((WriteMultipleRegistersResponse) modbusPdu, buffer);

            case MaskWriteRegister:
                return encodeMaskWriteRegister((MaskWriteRegisterResponse) modbusPdu, buffer);

            default:
                throw new EncoderException("FunctionCode not supported: " + modbusPdu.getFunctionCode());
            }
        }
    } finally {
        ReferenceCountUtil.release(modbusPdu);
    }
}

From source file:com.foxinmy.weixin4j.base64.BaseNCodec.java

License:Apache License

/**
 * Encodes an Object using the Base-N algorithm. This method is provided in
 * order to satisfy the requirements of the Encoder interface, and will
 * throw an EncoderException if the supplied object is not of type byte[].
 *
 * @param obj//from w  ww . j  a v  a  2 s  .  c  o m
 *            Object to encode
 * @return An object (of type byte[]) containing the Base-N encoded data
 *         which corresponds to the byte[] supplied.
 * @throws EncoderException
 *             if the parameter supplied is not of type byte[]
 */
public Object encode(final Object obj) throws EncoderException {
    if (!(obj instanceof byte[])) {
        throw new EncoderException("Parameter supplied to Base-N encode is not a byte[]");
    }
    return encode((byte[]) obj);
}

From source file:io.lettuce.core.protocol.DefaultEndpointTest.java

License:Apache License

@Test
public void shouldCancelCommandsOnEncoderException() {

    when(channel.isActive()).thenReturn(true);
    sut.notifyChannelActive(channel);/*from  ww w  . j  ava  2  s .  c  o  m*/

    DefaultChannelPromise promise = new DefaultChannelPromise(channel, ImmediateEventExecutor.INSTANCE);

    when(channel.writeAndFlush(any())).thenAnswer(invocation -> {
        if (invocation.getArguments()[0] instanceof RedisCommand) {
            queue.add((RedisCommand) invocation.getArguments()[0]);
        }

        if (invocation.getArguments()[0] instanceof Collection) {
            queue.addAll((Collection) invocation.getArguments()[0]);
        }
        return promise;
    });

    promise.setFailure(new EncoderException("foo"));

    sut.write(command);

    assertThat(command.exception).isInstanceOf(EncoderException.class);
}

From source file:net.ieldor.network.codec.buf.ByteBufEncoder.java

License:Open Source License

@Override
public void encode(ChannelHandlerContext ctx, ByteBuf msg, ByteBuf out) throws Exception {
    if (msg == null)
        throw new EncoderException("Please revise your buffer.");
    out.writeBytes(msg);/* w ww . jav a 2  s  .  c  o m*/
}

From source file:org.eclipse.neoscada.protocol.iec60870.apci.APDUEncoder.java

License:Open Source License

private void handleIFormat(final InformationTransfer msg, ByteBuf out) {
    final ByteBuf data = msg.getData();
    try {/*from   w  w w  . jav  a 2s  .co  m*/
        out = out.order(ByteOrder.LITTLE_ENDIAN);

        final int len = data.readableBytes();

        if (len > Constants.APCI_MAX_DATA_LENGTH) {
            throw new EncoderException(String.format("Packet too big - %s bytes", len));
        }

        out.ensureWritable(6 + len);
        out.writeByte(Constants.START_BYTE);
        out.writeByte(4 + len);
        out.writeShort(msg.getSendSequenceNumber() << 1);
        out.writeShort(msg.getReceiveSequenceNumber() << 1);
        out.writeBytes(data);
    } finally {
        ReferenceCountUtil.release(msg.getData());
    }
}

From source file:org.eclipse.neoscada.protocol.iec60870.apci.MessageChannel.java

License:Open Source License

@Override
public void write(final ChannelHandlerContext ctx, final Object msg, final ChannelPromise promise)
        throws Exception {
    logger.trace("Write {}", msg);
    synchronized (this) {
        if (msg instanceof DataTransmissionMessage) {
            switch ((DataTransmissionMessage) msg) {
            case REQUEST_START:
                ctx.write(new UnnumberedControl(Function.STARTDT_ACT), promise);
                break;
            case CONFIRM_START:
                ctx.write(new UnnumberedControl(Function.STARTDT_CONFIRM), promise);
                break;
            case REQUEST_STOP:
                ctx.write(new UnnumberedControl(Function.STOPDT_ACT), promise);
                break;
            case CONFIRM_STOP:
                ctx.write(new UnnumberedControl(Function.STOPDT_CONFIRM), promise);
                break;
            default:
                throw new EncoderException(String.format("Unknown data transmission message: %s", msg));
            }// w ww. ja  va  2s .co m
        } else if (msg == MessageSource.NOTIFY_TOKEN) {
            handleMessageSourceUpdates(ctx);
        } else {
            handleMessageWrite(ctx, msg, promise);
        }
    }
}

From source file:org.graylog2.gelfclient.encoder.GelfMessageChunkEncoder.java

License:Apache License

/**
 * {@inheritDoc}//from   w w w  .  ja  va 2s.  com
 */
@Override
protected void encode(ChannelHandlerContext ctx, ByteBuf buf, List<Object> out) throws Exception {
    if (buf.readableBytes() > MAX_MESSAGE_SIZE) {
        throw new EncoderException(
                "Message too big. " + buf.readableBytes() + " bytes (max " + MAX_MESSAGE_SIZE + ")");
    }

    if (buf.readableBytes() <= MAX_CHUNK_SIZE) {
        // Need to retain() the buffer here to avoid releasing the buffer too early.
        out.add(buf.retain());
    } else {
        final Chunker chunker = new Chunker(buf.readableBytes());

        try {
            while (buf.readableBytes() > 0) {
                if (buf.readableBytes() >= MAX_CHUNK_SIZE) {
                    out.add(chunker.nextChunk(buf.readSlice(MAX_CHUNK_SIZE)));
                } else {
                    out.add(chunker.nextChunk(buf.readSlice(buf.readableBytes())));
                }
            }
        } catch (Exception e) {
            LOG.error("Chunk encoder error", e);
            buf.release();
        }
    }
}

From source file:org.lanternpowered.server.network.buffer.LanternByteBuffer.java

License:MIT License

@Override
public LanternByteBuffer writeUTF(String data) {
    final byte[] bytes = data.getBytes(StandardCharsets.UTF_8);
    if (bytes.length > 32767) {
        throw new EncoderException(
                "String too big (was " + data.length() + " bytes encoded, max " + 32767 + ")");
    }/*from w  w  w .  j  a  v a2  s.co m*/
    this.buf.writeShort(bytes.length);
    this.buf.writeBytes(bytes);
    return this;
}