Quote Originariamente inviata da kiaBs Visualizza il messaggio
E' molto probabile che sia perché ha bisogno di tanta memoria.
Sto risolvendo un problema di Arc Routing, e i miei thread devono spostarsi di nodi in nodi calcolando cammini minimi verso varie destinazioni. Facendo una serie di stampe di prove, effettivamente il programma si "incanta" nel calcolare i cammini minimi verso vari nodi. In quella porzione di codice non ci sono riferimenti a oggetti: applico un algoritmo di calcolo di distanze.
Questo codice che hai postato non "dice" più di tanto (almeno a me). Dovresti indagare tu, magari facendo del debugging o anche solo loggando certe informazioni.

Il problema tecnico è chiaro dallo stack trace:

codice:
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at main.Istanza.getShortestPathTo(Istanza.java:653)

Il tuo getShortestPathTo aggiunge un elemento ad un ArrayList. L'aggiunta è tale per cui l'ArrayList deve espandere il suo array interno. Ma nella istanziazione operata da copyOf fallisce.