Блокировка потока objectoutputstream objectinputstream не читается

Мой код болен; то, что выглядит как довольно простая операция записи и чтения объекта, кажется, никогда не запускает свои вторичные операции. Поток внутреннего класса на удаленном узле отправляет ConcurrentHashMap через OOS.

Когда это приходит — и это происходит, все в порядке — принимающий код продолжает в цикле, определяемом булевыми значениями, прослушивать OIS для обновлений этого CCHM. Эти обновления поступают от братьев и сестер того, кто отправил исходный CCHM (на каждый принимающий узел приходится один обслуживающий брат). ObjectOutputStreams, которые используют эти братья и сестры, взяты из видимых HashMap братьев и сестер. Братьям и сестрам все равно, отправляют ли они новому члену группы или существующему. Разница в том, является ли одноранговый узел новым или существующим, известна только на принимающей одноранговой стороне, где исходный CCHM получен и используется, а затем код продолжает ожидать обновлений в той же OIS. Информация о новых присоединяющихся одноранговых узлах добавляется в Hashtable удаленного, поэтому отправляемый CCHM становится на один элемент больше каждый раз, когда он отправляется всем одноранговым узлам (новый плюс n существующих).

Но существующие одноранговые узлы не получают обновленный CCHM. Вместо того, чтобы заполнить мой код вызовами System.out.println() или грубо остановить его, какие подводные камни я, вероятно, упустил из виду, чтобы попасть в эту неразбериху?


person user1410059    schedule 22.08.2012    source источник
comment
Можете ли вы на самом деле дать код, пожалуйста?   -  person DankMemes    schedule 23.08.2012


Ответы (1)