Java環境で奇妙なバグが発生しているようです。これで、同じ「発生しない」例外が2回発生しました。あるケースでは、実行中のプロセスで48分間に42,551回問題が発生し、その後自然に解消されました。
失敗したコードは、次の行によってトリガーされます。
return String.format("%1d%XY%d", source, System.currentTimeMillis(), quoteID);
ここでint source = 0
、long quoteID = 44386874
(たとえば)。
例外は次のとおりです。
java.util.UnknownFormatConversionException: Conversion = 'd'
at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2605)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2633)
at java.util.Formatter.parse(Formatter.java:2479)
at java.util.Formatter.format(Formatter.java:2413)
at java.util.Formatter.format(Formatter.java:2366)
at java.lang.String.format(String.java:2770)
コードをチェックしても、'd'
この例外が発生することはありません。
私たちが思いついた最も良い説明は、JITコンパイラが不正なバイトコードを生成しているということですが、その後の再JITでは、正常なコードを記述します。
誰かがそのような問題を回避/診断する方法の経験がありますか?
ロジャー。