よくあったんですよ、手元で例外が発生して原因を辿るためにスタックトレースを辿ってたら、おやおや、「... 3 more」とか出てて、原因が辿れねーぞっていうケース。
HighLevelException: MidLevelException: LowLevelException at Junk.a(Junk.java:13) at Junk.main(Junk.java:4) Caused by: MidLevelException: LowLevelException at Junk.c(Junk.java:23) at Junk.b(Junk.java:17) at Junk.a(Junk.java:11) ... 1 more Caused by: LowLevelException at Junk.e(Junk.java:30) at Junk.d(Junk.java:27) at Junk.c(Junk.java:21) ... 3 more
... 3 more じゃねーんだオイ、おれはその more を見てぇんだよ、そうしないと原因が分かねーだろが。
もうね、ぼくが悪かった。無知は罪ですごめんなさい。スタックトレースを全出力する JVM のオプションがあるんじゃない???とかしたり顔で言ったりして本当にすみませんでした。反省しております。
文字"..."を含む行が存在することに注目してください。これらの行は、この例外のスタック・トレースの残りが、この例外により引き起こされた例外のスタック・トレースの下からのフレーム数と一致することを示します。通常の(「原因となる例外」をキャッチするのと同じメソッドからラップされた例外がスローされる)場合、この短縮形を使用することで、出力の長さを大幅に短縮できます。上の例は、次のプログラムを実行することで生成されます。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Throwable.html#printStackTrace--
ちゃーんと Javadoc に書いてあったんですね。省略は省略でも、「出力が重複してるから省略」してたってこと。Java は偉いよ。ホントえらい。 Java に対して無知すぎる。なんとかしていきたい。