どういうわけか、私のプログラムはNegativeArraySizeException
しばらく実行した後に突然スローします。それをスローするコードは、例外がスローされる前に入力したコマンドの背後にあります。
私が使用しているコードは主にデバッグ用であり、次のとおりです。
final HashMap<String, Integer> busy = new HashMap<>();
//this map gets filled and emptied in threads
System.out.println("Busy tables: " + Arrays.toString(this.busy.keySet().toArray()));
System.out.println("Time busy: " + Arrays.toString(this.busy.values().toArray()));
//map gets read (from the input handler thread)
例外は最初のSystem.out.println()
行でスローされますが、実行を継続すると、もう一方の行でもスローされることが想像できます。
それはある種のスレッドの問題である可能性がありますか、それとも原因は別の場所にある可能性がありますか?
グーグルは私に(年齢で初めて)使用可能な結果を与えませんでした。とにかく、セットが負のサイズになるにはどうすればよいですか?
編集:例外:
Exception in thread "Thread-1" java.lang.NegativeArraySizeException
at java.util.AbstractCollection.toArray(Unknown Source)
at nl.lolmewn.statsglobal.Main.handleInput(Main.java:61)
at nl.lolmewn.statsglobal.Main.access$000(Main.java:20)
at nl.lolmewn.statsglobal.Main$1.run(Main.java:200)
at java.lang.Thread.run(Unknown Source)