java - ConcurrentModificationException when invoking putAll -
i have difficulties in understanding following error.
suppose have class in implement following method:
map<double,integer> get_friends(double user){ map<double,integer> friends = user_to_user.row(user); //friends.putall(user_to_user.column(user)); return friends;} then in main following:
a obj = new a(); map<double,integer> temp = obj.get_friends(6); well works fine. when uncomment follwing line in class a:
friends.putall(user_to_user.column(user)); and run again program, crashes , throws me concurrentmodificationexception. noted, creating table user_to_user follows:
private hashbasedtable<double,double,integer> user_to_user;// user_to_user = hashbasedtable.create(); what further surprising when interchange way filling friends, mean in way:
map<double,integer> friends = user_to_user.column(user); friends.putall(user_to_user.row(user)); then everyting work fine. idea ?
the issue hashbasedtable internally implemented map<double, map<double, integer>>, , implementation of user_to_user.column(user) iterating on rows @ same time you're modifying row associated user.
one workable alternative copy user_to_user.column(user) separate map before putting row.
Comments
Post a Comment