JRakNet: java.lang.UnsupportedOperationException: direct buffer

fev 21, 2017 8:54:10 PM io.netty.channel.AbstractChannelHandlerContext invokeExceptionCaught
ADVERT╩NCIA: An exception 'java.lang.NullPointerException' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
java.lang.UnsupportedOperationException: direct buffer
        at io.netty.buffer.PooledUnsafeDirectByteBuf.array(PooledUnsafeDirectByteBuf.java:343)
        at net.marfgamer.jraknet.server.RakNetServerHandler.channelRead(RakNetServerHandler.java:102)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:354)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:332)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1319)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:354)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:904)
        at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:93)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:571)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:512)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:426)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:398)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:805)
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)
        at java.lang.Thread.run(Unknown Source)

Latest JRakNet version

Code:


        raknet = new RakNetServer(server.getPort(), server.getMaxPlayers(), new MCPEIdentifier(server.getMotd(), ProtocolInfo.CURRENT_PROTOCOL, ProtocolInfo.MINECRAFT_VERSION_NETWORK, server.getOnlinePlayers().size(),
                server.getMaxPlayers(), server.getServerUniqueId().getMostSignificantBits() & Long.MAX_VALUE, "New World", "Survival"));
        raknet.setListener(new RakNetServerListener() {
            // Client connected
            @Override
            public void onClientConnect(RakNetClientSession session) {
                openSession(String.valueOf(session.getGloballyUniqueId()), session.getAddress().getHostString(), session.getInetPort(), session.getGloballyUniqueId());
            }

            // Client disconnected
            @Override
            public void onClientDisconnect(RakNetClientSession session, String reason) {
                // We first check if the global ID exists (prevents NPE when shutting down the server)
                if (players.containsKey(String.valueOf(session.getGloballyUniqueId()))) {
                    close(players.get(String.valueOf(session.getGloballyUniqueId())), reason);
                }
            }

            // Packet received
            @Override
            public void handleMessage(RakNetClientSession session, RakNetPacket packet, int channel) {
                handleRakNetPacket(session.getGloballyUniqueId(), packet);
            }
            
            // UT3 server query
            @Override
            public void handleNettyMessage(ByteBuf buf, InetSocketAddress address) {
                System.out.println("Received Netty message!");
            }
        });

(This happens without any clients connecting to it)

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 27 (27 by maintainers)

Commits related to this issue

Most upvoted comments

You’re fast!