再帰的に発リンクを取得しようとしたら、java.util.ConcurrentModificationException
全く見たことがないException見たらワクワクしますね。
新しいことやってるな~
っていう気分になります。
ConcurrentModificationExceptionって出たから、
「おっ?」って思った。
と思ったらなんのこっちゃあらへん、
ArrayListの共有違反でした。
ArrayListの使い方が下手ってことね。
複数個所から同時にリストの中身を書き換え、
読み込んだ 場合に発生 するようです。
何をしたかと言うと、
とあるURLから発リンクを取得した。
その発リンク先(複数)からさらに発リンクをどんどん取得し、
結果を格納するArrayListにじゃんじゃんつっこんだ。
そうした時に複数の発リンク先の発リンクを、
同時にArrayListにつっこんだからそうなったんや。
結果リストを
Collections.synchronizedList(new ArrayList<String>());
によって生成することで解決。
って思ったら、違った。
そもそも構造が間違っていた。