Вы запускаете приложение шторма, запустив класс, который строит и настраивает топологию как набор объектов, а затем отправляет эту коллекцию объектов (вместе с файлом jar) на сервер Nimbus. Некоторые из этих объектов являются экземплярами носиков и болтов, которые сериализуются как часть представления топологии. Каждый экземпляр болта и носика на кластере является одним из этих десериализованных объектов. Таким образом, все болты и носики создаются при первом запуске топологии (обычно на краевом узле), а не в кластере.
Это означает, что любые объекты, на которые ссылается носик во время инициализации и построения объекта, сериализуются вместе с экземпляром носика. Это будет включать BlockingQueue. Ваш BlockingQueue сериализуется и распространяется в кластер, и похоже, что он не переживает поездки.
Что вы хотите сделать, это оставить переменную очереди блокировки null в конструкторе и вместо этого установить переменную в методе open(). Когда вы создаете фактический объект очереди, вы можете хранить его в общедоступной статической переменной где-нибудь, чтобы он был доступен для метода open() носика.