Надо, чтобы в input был записан второй Object.
Если Вы натравливаете два экз. приложения с этим кодом (т.е. читаете, потом пишете, потом ожидаете его получить), попробуйте output.flush() после output.writeObject
Также в таком случае (когда приложение является и сервером, и клиентом для себя же) имеет значение:
1. инициализация ObjectOutputStream перед ObjectInputStream
2. чтобы была запись writeObject перед чтением readObject, т.к. ObjectInputStream при инициализации ждет, что в него сразу начнут писать, иначе блокирует поток.
В любом случае, тут блокирующий ввод\вывод, так что Вам одним потоком не обойтись.