Ich habe viele Artikel über ArrayStoreExceptions gelesen, die meisten von ihnen fallen in eine dieser Kategorien:
Mine fällt in keine dieser Kategorien. Es gibt einen anderen Fall , der OP vermutet nur einen Fehler tauchte auf Unix auf. Ich denke, ich habe diesen Fall und bin mir nicht sicher, wie ich dem Thema näher kommen könnte.
Ich habe den Code so weit wie möglich kaputt gemacht, er sieht so aus:
%Vor%Und es gibt aus:
%Vor%UserValues ist ein Untertyp von RecordValues. Ich habe einige einfache Tests mit den fraglichen Klassen erstellt, kann aber den Fehler nicht replizieren. Auch (hier ist der wirklich komische Teil), das funktioniert seit über sechs Monaten. Ich habe Änderungen an anderen Teilen des Werkzeugs vorgenommen, aber nichts in der Nähe dieser Bibliotheken. Es tauchte plötzlich auf.
Ich frage mich, was sonst die ArrayStoreException verursachen könnte. Ich bin 100% sicher, dass UserValues eine Unterklasse von RecordValues ist, aber sobald ich versuche, es dem Array hinzuzufügen, schlägt es fehl. Host ist 64bit RH Linux, OpenJDK Java Version 1.7.0.45.
Ich weiß, was die ArrayStoreException mir sagt, meine Frage ist, wie kann ich bei der Fehlersuche einen Schritt weiter gehen? Wenn UserValues ein RecordValues ist, wo gehe ich von hier aus ??
Nach dem Posten gab ich das Array auf und änderte es in eine Liste, die, obwohl sie immer noch scheiterte, ein viel konkreteres Problem aufwarf:
%Vor%Wie @ Taylor vermutete, wurde dies durch mehrere Klassenlader über Gradle verursacht. Obwohl ich diesen Code seit langem nicht mehr geändert hatte, hatte ich kürzlich die Abhängigkeitsdeklarationen in der Build-Datei geändert. Glücklicherweise war der Fehler, den ich von der Liste erhielt, genauer als der Fehler vom Array!