不適切な再帰と StackOverflowError に関連するプログラミングの問題があります。私は別のスレッドでこのケースを持っています:
public void subscribe(final String channel) {
try {
// blocking command
client.subscribe(channel);
} catch(ConnectionException e) {
subscribe(channel);
}
}
この ConnectionException が定期的にのみ発生しているとします (毎分など)。数百回後、明らかに StackOverflowError が発生します。
何が起こっているかはわかっていますが、これを解決する方法がわかりません (つまり、呼び出しスタックを増やさずにサイレントに再サブスクライブします)。何か案は?