What steps will reproduce the problem?
1. irc-api as used in Jitsi IRC protocol support.
2. Jitsi supports automatically joining specified channels, so some channels
are configured to be auto-joined.
3. Connect to an IRC server, in my case I connect using a secure connection.
4. As soon as the connection is established according to irc-api, I flag the
connection as being set.
5. Then, as a consequence, Jitsi starts issuing join-commands for every
auto-joining channel.
6. Exception below gets thrown for some of the auto-joining channels, other
auto-joins succeed without a hitch.
What is the expected output? What do you see instead?
- Expected: all messages get sent, i.e. without an exception.
- Actually: an exception occurs telling that a buffer overflow has occurred.
What version of the product are you using? On what operating system?
- Latest snapshot (rev. 194), no modifications.
At first glance, it looks like I have been able to fix this by simply
increasing the appSendBuffer. I'm not sure if it is also necessary to increase
the cipherSendBuffer, though it looks as it is necessary too.
19:13:56.744 SEVERE: [143] util.UtilActivator.uncaughtException().108 An
uncaught exception occurred in thread=Thread[Thread-100,6,main] and message
was: null
java.nio.BufferOverflowException
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:183)
at java.nio.ByteBuffer.put(ByteBuffer.java:832)
at com.ircclouds.irc.api.comms.SSLSocketChannelConnection.write(SSLSocketChannelConnection.java:70)
at com.ircclouds.irc.api.AbstractCommandServerImpl.execute(AbstractCommandServerImpl.java:19)
at com.ircclouds.irc.api.IRCApiImpl.executeAsync(IRCApiImpl.java:593)
at com.ircclouds.irc.api.IRCApiImpl.joinChannel(IRCApiImpl.java:176)
at net.java.sip.communicator.impl.protocol.irc.IrcStack.join(IrcStack.java:638)
at net.java.sip.communicator.impl.protocol.irc.IrcStack.join(IrcStack.java:580)
at net.java.sip.communicator.impl.protocol.irc.ChatRoomIrcImpl.join(ChatRoomIrcImpl.java:323)
at net.java.sip.communicator.impl.protocol.irc.ChatRoomIrcImpl.joinAs(ChatRoomIrcImpl.java:356)
at net.java.sip.communicator.impl.muc.MUCServiceImpl$JoinChatRoomTask.run(MUCServiceImpl.java:680)