
Requesting from behind an iron pipe throws an exception and kicks the client
firelizzard18 opened this issue ยท 3 comments
I have my main network and my personal network. Between the two there's an iron pipe that lets items into but not out of my personal network. My personal network consists of a chest with a chassis+provider and another chest with a remote orderer. When I use the remote orderer to request certain items, an exception is thrown and my client is kicked from the server. So far the items that have caused this error are sticks (one available, and a crafting recipe that takes jungle wood planks) and jungle wood planks (one available, and a crafting recipe that takes rubber wood (lots of that available)). (fml-server-latest.log
provides no additional information.)
[20:18:54] [Server thread/ERROR] [FML]: PacketInboundHandler exception
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(TimSort.java:777) ~[?:1.8.0_91]
at java.util.TimSort.mergeAt(TimSort.java:514) ~[?:1.8.0_91]
at java.util.TimSort.mergeCollapse(TimSort.java:441) ~[?:1.8.0_91]
at java.util.TimSort.sort(TimSort.java:245) ~[?:1.8.0_91]
at java.util.Arrays.sort(Arrays.java:1512) ~[?:1.8.0_91]
at java.util.ArrayList.sort(ArrayList.java:1454) ~[?:1.8.0_91]
at java.util.Collections.sort(Collections.java:175) ~[?:1.8.0_91]
at logisticspipes.request.RequestTreeNode.getProviders(RequestTreeNode.java:304) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.checkProvider(RequestTreeNode.java:272) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.<init>(RequestTreeNode.java:48) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.<init>(RequestTreeNode.java:31) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTree.<init>(RequestTree.java:43) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestTree.request(RequestTree.java:177) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestTree.request(RequestTree.java:202) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestHandler.request(RequestHandler.java:48) ~[RequestHandler.class:0.9.3.local]
at logisticspipes.network.packets.orderer.RequestSubmitPacket.processPacket(RequestSubmitPacket.java:29) ~[RequestSubmitPacket.class:0.9.3.local]
at logisticspipes.network.PacketInboundHandler.channelRead0(PacketInboundHandler.java:21) ~[PacketInboundHandler.class:0.9.3.local]
at logisticspipes.network.PacketInboundHandler.channelRead0(PacketInboundHandler.java:16) ~[PacketInboundHandler.class:0.9.3.local]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[SimpleChannelInboundHandler.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:?]
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
at cpw.mods.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:77) [FMLProxyPacket.class:?]
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212) [ej.class:?]
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165) [nc.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:334) [lt.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [li.class:?]
[20:18:54] [Server thread/ERROR] [FML]: There was a critical exception handling a packet on channel LogisticsPipes
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(TimSort.java:777) ~[?:1.8.0_91]
at java.util.TimSort.mergeAt(TimSort.java:514) ~[?:1.8.0_91]
at java.util.TimSort.mergeCollapse(TimSort.java:441) ~[?:1.8.0_91]
at java.util.TimSort.sort(TimSort.java:245) ~[?:1.8.0_91]
at java.util.Arrays.sort(Arrays.java:1512) ~[?:1.8.0_91]
at java.util.ArrayList.sort(ArrayList.java:1454) ~[?:1.8.0_91]
at java.util.Collections.sort(Collections.java:175) ~[?:1.8.0_91]
at logisticspipes.request.RequestTreeNode.getProviders(RequestTreeNode.java:304) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.checkProvider(RequestTreeNode.java:272) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.<init>(RequestTreeNode.java:48) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTreeNode.<init>(RequestTreeNode.java:31) ~[RequestTreeNode.class:0.9.3.local]
at logisticspipes.request.RequestTree.<init>(RequestTree.java:43) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestTree.request(RequestTree.java:177) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestTree.request(RequestTree.java:202) ~[RequestTree.class:0.9.3.local]
at logisticspipes.request.RequestHandler.request(RequestHandler.java:48) ~[RequestHandler.class:0.9.3.local]
at logisticspipes.network.packets.orderer.RequestSubmitPacket.processPacket(RequestSubmitPacket.java:29) ~[RequestSubmitPacket.class:0.9.3.local]
at logisticspipes.network.PacketInboundHandler.channelRead0(PacketInboundHandler.java:21) ~[PacketInboundHandler.class:0.9.3.local]
at logisticspipes.network.PacketInboundHandler.channelRead0(PacketInboundHandler.java:16) ~[PacketInboundHandler.class:0.9.3.local]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[SimpleChannelInboundHandler.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[MessageToMessageDecoder.class:?]
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[DefaultChannelPipeline.class:?]
at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:?]
at cpw.mods.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:77) [FMLProxyPacket.class:?]
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212) [ej.class:?]
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165) [nc.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:334) [lt.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [li.class:?]
The line in question is 107 in the github sources:
Collections.sort(validSources, new workWeightedSorter(1.0));
This issue affects JRE 1.7 and up (details). A workaround is to add -Djava.util.Arrays.useLegacyMergeSort=true
to the java options when launching.