Java 类io.netty.handler.codec.EncoderException 实例源码
项目:neoscada
文件:APDUEncoder.java
private void handleIFormat ( final InformationTransfer msg, ByteBuf out )
{
final ByteBuf data = msg.getData ();
try
{
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 () );
}
}
项目:DecompiledMinecraft
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public void writeNBTTagCompoundToBuffer(NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:DecompiledMinecraft
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public void writeNBTTagCompoundToBuffer(NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:BaseClient
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public void writeNBTTagCompoundToBuffer(NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:BaseClient
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public void writeNBTTagCompoundToBuffer(NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:Backmemed
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public PacketBuffer writeNBTTagCompoundToBuffer(@Nullable NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
return this;
}
项目:Backmemed
文件:EntityDataManager.java
private static <T> void writeEntry(PacketBuffer buf, EntityDataManager.DataEntry<T> entry) throws IOException
{
DataParameter<T> dataparameter = entry.getKey();
int i = DataSerializers.getSerializerId(dataparameter.getSerializer());
if (i < 0)
{
throw new EncoderException("Unknown serializer type " + dataparameter.getSerializer());
}
else
{
buf.writeByte(dataparameter.getId());
buf.writeVarIntToBuffer(i);
dataparameter.getSerializer().write(buf, entry.getValue());
}
}
项目:CustomWorldGen
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public PacketBuffer writeNBTTagCompoundToBuffer(@Nullable NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
return this;
}
项目:CustomWorldGen
文件:PacketBuffer.java
/**
* Reads a compressed NBTTagCompound from this buffer
*/
@Nullable
public NBTTagCompound readNBTTagCompoundFromBuffer() throws IOException
{
int i = this.readerIndex();
byte b0 = this.readByte();
if (b0 == 0)
{
return null;
}
else
{
this.readerIndex(i);
try
{
return CompressedStreamTools.read(new ByteBufInputStream(this), new NBTSizeTracker(2097152L));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:CustomWorldGen
文件:EntityDataManager.java
private static <T> void writeEntry(PacketBuffer buf, EntityDataManager.DataEntry<T> entry) throws IOException
{
DataParameter<T> dataparameter = entry.getKey();
int i = DataSerializers.getSerializerId(dataparameter.getSerializer());
if (i < 0)
{
throw new EncoderException("Unknown serializer type " + dataparameter.getSerializer());
}
else
{
buf.writeByte(dataparameter.getId());
buf.writeVarIntToBuffer(i);
dataparameter.getSerializer().write(buf, entry.getValue());
}
}
项目:CrystalMod
文件:ByteBufUtils.java
public static void writeNBTTagCompoundToBuffer(ByteBuf buf, NBTTagCompound tag)
{
if (tag == null)
{
buf.writeByte(0);
return;
}
try
{
CompressedStreamTools.write(tag, new ByteBufOutputStream(buf));
}
catch (IOException ioexception)
{
ModLogger.error("IOException while trying to write a NBTTagCompound to ByteBuf");
throw new EncoderException(ioexception);
}
}
项目:CodeChickenLib
文件:MCDataUtils.java
@Nullable
public static NBTTagCompound readNBTTagCompound(MCDataInput input) {
byte flag = input.readByte();
if (flag == 0) {
return null;
} else if (flag == 1) {
try {
return CompressedStreamTools.read(new DataInputStream(new MCDataInputStream(input)), new NBTSizeTracker(2097152L));
} catch (IOException e) {
throw new EncoderException(e);
}
} else {
throw new EncoderException("Invalid flag for readNBTTagCompound. Expected 0 || 1 Got: " + flag + " Possible incorrect read order?");
}
}
项目:CodeChickenLib
文件:PacketCustom.java
/**
* Decompresses the remaining ByteBuf (after type has been read) using Snappy
*/
private void decompress() {
Inflater inflater = new Inflater();
try {
int len = readVarInt();
byte[] out = new byte[len];
inflater.setInput(array(), readerIndex(), readableBytes());
inflater.inflate(out);
clear();
writeArray(out);
} catch (Exception e) {
throw new EncoderException(e);
} finally {
inflater.end();
}
}
项目:CodeChickenLib
文件:PacketCustom.java
/**
* Compresses the payload ByteBuf after the type byte
*/
private void do_compress() {
Deflater deflater = new Deflater();
try {
readerIndex(1);
int len = readableBytes();
deflater.setInput(array(), readerIndex(), len);
deflater.finish();
byte[] out = new byte[len];
int clen = deflater.deflate(out);
if (clen >= len - 5 || !deflater.finished())//not worth compressing, gets larger
{
return;
}
clear();
writeByte(type | 0x80);
writeVarInt(len);
writeArray(out);
} catch (Exception e) {
throw new EncoderException(e);
} finally {
readerIndex(0);
deflater.end();
}
}
项目:LanternServer
文件:CodecPlayOutUnlockRecipes.java
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutUnlockRecipes message) throws CodecException {
final ByteBuffer buf = context.byteBufAlloc().buffer();
if (message instanceof MessagePlayOutUnlockRecipes.Remove) {
buf.writeVarInt((short) 2);
} else if (message instanceof MessagePlayOutUnlockRecipes.Add) {
buf.writeVarInt((short) 1);
} else if (message instanceof MessagePlayOutUnlockRecipes.Init) {
buf.writeVarInt((short) 0);
} else {
throw new EncoderException();
}
buf.writeBoolean(message.hasOpenCraftingBook());
buf.writeBoolean(message.hasCraftingFilter());
IntList recipeIds = message.getRecipeIds();
buf.writeVarInt(recipeIds.size());
recipeIds.forEach(buf::writeVarInt);
if (message instanceof MessagePlayOutUnlockRecipes.Init) {
recipeIds = ((MessagePlayOutUnlockRecipes.Init) message).getRecipeIdsToBeDisplayed();
buf.writeVarInt(recipeIds.size());
recipeIds.forEach(buf::writeVarInt);
}
return buf;
}
项目:ProtocolSupportBungee
文件:AbstractPacketEncoder.java
@Override
public void write(final ChannelHandlerContext ctx, final Object msgObject, final ChannelPromise promise) throws Exception {
try {
if (acceptOutboundMessage(msgObject)) {
DefinedPacket msg = (DefinedPacket) msgObject;
try {
encode(ctx, msg, null);
} finally {
ReferenceCountUtil.release(msg);
}
} else {
ctx.write(msgObject, promise);
}
} catch (EncoderException e) {
throw e;
} catch (Throwable e2) {
throw new EncoderException(e2);
}
}
项目:MinecraftNetLib
文件:CodecHandler.java
@Override
protected void encode(ChannelHandlerContext channelHandlerContext, Packet packet, List<Object> list) throws Exception {
Class<? extends Packet> packetClass = packet.getClass();
CodecRegistrationEntry registrationEntry = this.networkHandler.getSession().getProtocol().getCodecRegistration(this.side, packetClass);
if (registrationEntry == null) {
throw new EncoderException("Failed to find a CodecRegistrationEntry for packet: " + packetClass.getName());
}
ByteBuf header = channelHandlerContext.alloc().buffer(8);
ByteBufUtils.writeVarInt(header, registrationEntry.getOpcode());
ByteBuf contents = channelHandlerContext.alloc().buffer();
contents = registrationEntry.getCodec().encode(contents, packet);
list.add(Unpooled.wrappedBuffer(header, contents));
}
项目:c5-replicator
文件:ProtostuffEncoder.java
@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);
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[]{})));
}
项目:enderutilities
文件:ByteBufUtilsEU.java
public static void writeNBTTagCompoundToBuffer(ByteBuf buf, NBTTagCompound tag)
{
if (tag == null)
{
buf.writeByte(0);
return;
}
try
{
CompressedStreamTools.write(tag, new ByteBufOutputStream(buf));
}
catch (IOException ioexception)
{
EnderUtilities.logger.error("IOException while trying to write a NBTTagCompound to ByteBuf");
throw new EncoderException(ioexception);
}
}
项目:ExpandedRailsMod
文件:PacketBuffer.java
/**
* Writes a compressed NBTTagCompound to this buffer
*/
public PacketBuffer writeNBTTagCompoundToBuffer(@Nullable NBTTagCompound nbt)
{
if (nbt == null)
{
this.writeByte(0);
}
else
{
try
{
CompressedStreamTools.write(nbt, new ByteBufOutputStream(this));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
return this;
}
项目:ExpandedRailsMod
文件:PacketBuffer.java
/**
* Reads a compressed NBTTagCompound from this buffer
*/
@Nullable
public NBTTagCompound readNBTTagCompoundFromBuffer() throws IOException
{
int i = this.readerIndex();
byte b0 = this.readByte();
if (b0 == 0)
{
return null;
}
else
{
this.readerIndex(i);
try
{
return CompressedStreamTools.read(new ByteBufInputStream(this), new NBTSizeTracker(2097152L));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:ProtocolSupport
文件:ItemStackSerializer.java
public static void writeTag(ByteBuf to, ProtocolVersion version, NBTTagCompoundWrapper tag) {
try {
if (isUsingShortLengthNBT(version)) {
if (tag.isNull()) {
to.writeShort(-1);
} else {
int writerIndex = to.writerIndex();
//fake length
to.writeShort(0);
//actual nbt
try (OutputStream outputstream = new GZIPOutputStream(new ByteBufOutputStream(to))) {
NBTTagCompoundSerializer.writeTag(new DataOutputStream(outputstream), tag);
}
//now replace fake length with real length
to.setShort(writerIndex, to.writerIndex() - writerIndex - Short.BYTES);
}
} else if (isUsingDirectNBT(version)) {
NBTTagCompoundSerializer.writeTag(new ByteBufOutputStream(to), tag);
} else {
throw new IllegalArgumentException(MessageFormat.format("Dont know how to write nbt of version {0}", version));
}
} catch (Throwable ioexception) {
throw new EncoderException(ioexception);
}
}
项目:chii2mqtt
文件:MQTTUtils.java
/**
* Decode the variable remaining length as defined in MQTT v3.1 specification
* (section 2.1).
*
* @return the decoded length or -1 if needed more data to decode the length field.
*/
public static int decodeRemainingLength(ByteBuf in) throws EncoderException {
int multiplier = 1;
int value = 0;
byte digit;
do {
if (in.readableBytes() < 1) {
return -1;
}
digit = in.readByte();
value += (digit & 0x7F) * multiplier;
multiplier *= 128;
} while ((digit & 0x80) != 0);
if (value > MAX_LENGTH_LIMIT || value < 0) {
in.resetReaderIndex();
throw new DecoderException("Remaining Length should in range 0.." + MAX_LENGTH_LIMIT + " found " + value);
}
return value;
}
项目:chii2mqtt
文件:MQTTUtils.java
/**
* Encode the value in the format defined in specification as variable length
* array.
*
* @throws EncoderException if the value is not in the specification bounds
* [0..268435455].
*/
public static ByteBuf encodeRemainingLength(int value) throws EncoderException {
if (value > MAX_LENGTH_LIMIT || value < 0) {
throw new EncoderException("Remaining Length should in range 0.." + MAX_LENGTH_LIMIT + " found " + value);
}
ByteBuf encoded = Unpooled.buffer(4);
byte digit;
do {
digit = (byte) (value % 128);
value = value / 128;
// if there are more digits to encode, set the top bit of this digit
if (value > 0) {
digit = (byte) (digit | 0x80);
}
encoded.writeByte(digit);
} while (value > 0);
return encoded;
}
项目:lettuce-core
文件:CommandEncoder.java
private void encode(ChannelHandlerContext ctx, ByteBuf out, RedisCommand<?, ?, ?> command) {
try {
out.markWriterIndex();
command.encode(out);
} catch (RuntimeException e) {
out.resetWriterIndex();
command.completeExceptionally(new EncoderException(
"Cannot encode command. Please close the connection as the connection state may be out of sync.",
e));
}
if (debugEnabled) {
logger.debug("{} writing command {}", logPrefix(ctx.channel()), command);
if (traceEnabled) {
logger.trace("{} Sent: {}", logPrefix(ctx.channel()), out.toString(Charset.defaultCharset()).trim());
}
}
}
项目:couchbase-jvm-core
文件:KeyValueHandlerTest.java
@Test
public void shouldPropagateErrorOnEncode() {
String id = "key";
ByteBuf content = Unpooled.buffer();
content.release(); // provoke a IllegalReferenceCountException
UpsertRequest request = new UpsertRequest(id, content, BUCKET);
request.partition((short) 1);
TestSubscriber<CouchbaseResponse> ts = TestSubscriber.create();
request.observable().subscribe(ts);
try {
channel.writeOutbound(request);
fail("Expected exception, none thrown.");
} catch (EncoderException ex) {
assertTrue(ex.getCause() instanceof IllegalReferenceCountException);
}
List<Throwable> onErrorEvents = ts.getOnErrorEvents();
assertTrue(onErrorEvents.get(0) instanceof RequestCancelledException);
assertTrue(onErrorEvents.get(0).getCause() instanceof IllegalReferenceCountException);
}
项目:SpigotSource
文件:PacketDataSerializer.java
@Nullable
public NBTTagCompound j() {
int i = this.readerIndex();
byte b0 = this.readByte();
if (b0 == 0) {
return null;
} else {
this.readerIndex(i);
try {
return NBTCompressedStreamTools.a((DataInput) (new ByteBufInputStream(this)), new NBTReadLimiter(2097152L));
} catch (IOException ioexception) {
throw new EncoderException(ioexception);
}
}
}
项目:neoscada
文件:MessageChannel.java
@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 ) );
}
}
else if ( msg == MessageSource.NOTIFY_TOKEN )
{
handleMessageSourceUpdates ( ctx );
}
else
{
handleMessageWrite ( ctx, msg, promise );
}
}
}
项目:MooProject
文件:PacketBuffer.java
/**
* Writes a string into the packets buffer
*
* @param string The string
* @return The buffer
*/
public PacketBuffer writeString(String string) {
if(string == null) string = "";
byte[] abyte = string.getBytes(Charsets.UTF_8);
if(abyte.length > 32767) {
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, slots " + 32767 + ")");
}
else {
this.writeVarInt(abyte.length);
buf.writeBytes(abyte);
return this;
}
}
项目:DecompiledMinecraft
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:DecompiledMinecraft
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:BaseClient
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:BaseClient
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:Backmemed
文件:PacketBuffer.java
@Nullable
/**
* Reads a compressed NBTTagCompound from this buffer
*/
public NBTTagCompound readNBTTagCompoundFromBuffer() throws IOException
{
int i = this.readerIndex();
byte b0 = this.readByte();
if (b0 == 0)
{
return null;
}
else
{
this.readerIndex(i);
try
{
return CompressedStreamTools.read(new ByteBufInputStream(this), new NBTSizeTracker(2097152L));
}
catch (IOException ioexception)
{
throw new EncoderException(ioexception);
}
}
}
项目:Backmemed
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + abyte.length + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:CustomWorldGen
文件:PacketBuffer.java
public PacketBuffer writeString(String string)
{
byte[] abyte = string.getBytes(Charsets.UTF_8);
if (abyte.length > 32767)
{
throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")");
}
else
{
this.writeVarIntToBuffer(abyte.length);
this.writeBytes(abyte);
return this;
}
}
项目:CrystalMod
文件:ItemStorage.java
public void toBytes(CompressedDataOutput cdo) throws IOException {
if (stack == null || ItemStackTools.isNullStack(stack)) {
cdo.writeShort(-1);
} else {
cdo.writeShort(Item.getIdFromItem(stack.getItem()));
cdo.writeVariable(ItemStackTools.getStackSize(stack));
cdo.writeShort(stack.getMetadata());
NBTTagCompound nbttagcompound = null;
if (stack.getItem().isDamageable()
|| stack.getItem().getShareTag()) {
nbttagcompound = stack.getTagCompound();
}
if (nbttagcompound == null) {
cdo.writeByte(0);
} else {
cdo.writeByte(1);
try {
CompressedStreamTools.write(nbttagcompound, cdo);
} catch (IOException ioexception) {
throw new EncoderException(ioexception);
}
}
}
cdo.writeBoolean(isCrafting);
}
项目:CrystalMod
文件:FluidStorage.java
public void toBytes(CompressedDataOutput cdo) throws IOException {
if (stack == null) {
cdo.writeShort(-1);
} else {
cdo.writeShort(1);
NBTTagCompound nbttagcompound = stack.writeToNBT(new NBTTagCompound());
cdo.writeByte(1);
try {
CompressedStreamTools.write(nbttagcompound, cdo);
} catch (IOException ioexception) {
throw new EncoderException(ioexception);
}
}
}
项目:Diorite-old
文件:PacketDataSerializer.java
public PacketDataSerializer writeText(final String s)
{
final byte[] abyte = s.getBytes(StandardCharsets.UTF_8);
if (abyte.length > Short.MAX_VALUE)
{
throw new EncoderException("String too big (was " + s.length() + " bytes encoded, max " + Short.MAX_VALUE + ")");
}
this.writeVarInt(abyte.length);
this.writeBytes(abyte);
return this;
}
项目:CodeChickenLib
文件:MCDataOutputWrapper.java
public MCDataOutputWrapper writeBoolean(boolean b) {
try {
dataout.writeBoolean(b);
} catch (IOException e) {
throw new EncoderException(e);
}
return this;
}