Java's ServerSocket#bind does both a bind and listen. At a system level, multiple processes may bind to the same port but only one may listen. Java sockets are left in an unrecoverable state when a process loses the race to listen first.
Servers that compete over a listening port range (ex. App Master) will fail the entire range after a collision. The IPC layer should make a better effort to recover from failed binds.