Hive13 / jIRCBot

The Hive13 Chat Bot

Home Page:http://wiki.hive13.org/Hive13_IRC_Bot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PircBotX still appears to have issues w/ multi-thread user list access.

pvince opened this issue · comments

Looks like I am going to need to implement my hack-around safe-access methods for the user list again.

Stack trace for user modification error

1391446871291 ### Your implementation of PircBotX is faulty and you have
1391446871291 ### allowed an uncaught Exception or Error to propagate in your
1391446871291 ### code. It may be possible for PircBotX to continue operating
1391446871292 ### normally. Here is the stack trace that was produced: -
1391446871292 ###
1391446871292 ### java.util.ConcurrentModificationException
1391446871292 ###       at java.util.HashMap$HashIterator.nextEntry(HashMap.java:810)
1391446871292 ###       at java.util.HashMap$KeyIterator.next(HashMap.java:845)
1391446871292 ###       at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1026)
1391446871292 ###       at org.hive13.jircbotx.listener.UserAuth.AuthCheckUsersInList(Unknown Source)
1391446871292 ###       at org.hive13.jircbotx.listener.UserAuth.onUserList(Unknown Source)
1391446871292 ###       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
1391446871292 ###       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
1391446871292 ###       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
1391446871293 ###       at java.lang.reflect.Method.invoke(Method.java:622)
1391446871293 ###       at org.pircbotx.hooks.ListenerAdapter.onEvent(ListenerAdapter.java:98)
1391446871293 ###       at org.pircbotx.hooks.managers.ThreadedListenerManager$1.run(ThreadedListenerManager.java:110)
1391446871293 ###       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
1391446871293 ###       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
1391446871293 ###       at java.util.concurrent.FutureTask.run(FutureTask.java:166)
1391446871293 ###       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
1391446871293 ###       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
1391446871293 ###       at java.lang.Thread.run(Thread.java:701)