[Issue #831] Fix for OperationJoin race condition

This is to fix the race condition outlined in issue #831 .
The join now grabs a copy of the other side's id in the first critical section then won't go higher than that in the iteration of the other side's values (now using entrySet()).