socket.io-client-java icon indicating copy to clipboard operation
socket.io-client-java copied to clipboard

Fatal Exception: java.util.ConcurrentModificationException

Open malik082009 opened this issue 3 years ago • 3 comments

I am getting the below mentioned error frequently while I am using in the application and I am using the version I face this issue in the middle of the app. don't know why.

Fatal Exception: java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:757) at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:780) at io.socket.hasbinary.HasBinary._hasBinary(HasBinary.java:47) at io.socket.hasbinary.HasBinary._hasBinary(HasBinary.java:39) at io.socket.hasbinary.HasBinary.hasBinary(HasBinary.java:18) at io.socket.parser.IOParser$Encoder.encode(IOParser.java:27) at io.socket.client.Manager.packet(Manager.java:412) at io.socket.client.Socket.packet(Socket.java:230) at io.socket.client.Socket.access$1000(Socket.java:18) at io.socket.client.Socket$6.run(Socket.java:219) at io.socket.thread.EventThread.exec(EventThread.java:55) at io.socket.client.Socket.emit(Socket.java:198) at io.socket.client.Socket$5.run(Socket.java:183) at io.socket.thread.EventThread$2.run(EventThread.java:80) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:923)

I am using: implementation('io.socket:socket.io-client:2.0.1') { exclude group: 'org.json', module: 'json' }

Platform:

  • Device: [OnePlus Nord N10]
  • OS: [Android 11]

Same issue reported here

malik082009 avatar May 18 '22 09:05 malik082009

Have some code to reproduce it will be great. or some step to reproduce it.

liangyuanpeng avatar Jun 24 '22 15:06 liangyuanpeng

Same here...

For example: sending 300 messages (offline) with AckWithTimeout (5000 ms), and then after eg. 2 seconds emit new message.

Exception java.util.ConcurrentModificationException: at java.util.LinkedList$ListItr.checkForComodification (LinkedList.java:970) at java.util.LinkedList$ListItr.next (LinkedList.java:892) at io.socket.client.Socket$6$1.run (Socket.java:232) at java.util.TimerThread.mainLoop (Timer.java:563) at java.util.TimerThread.run (Timer.java:513)

seven4pl avatar Sep 28 '22 11:09 seven4pl

@liangyuanpeng temporary solved by adding synchronized - Socket.java:

synchronized(sendBuffer){
          // remove the packet from the buffer (if applicable)
          Iterator<Packet<JSONArray>> iterator = sendBuffer.iterator();
          while (iterator.hasNext()) {
              if (iterator.next().id == ackId) {
                  iterator.remove();
              }
          }
        }

seven4pl avatar Oct 04 '22 05:10 seven4pl