よくあったんですよ、手元で例外が発生して原因を辿るためにスタックトレースを辿ってたら、おやおや、「... 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 に対して無知すぎる。なんとかしていきたい。