List of usage examples for io.netty.handler.codec EncoderException EncoderException
public EncoderException(Throwable cause)
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; }