2010-02-16 8 views
16

Sto eseguendo Eclipse per Java. Ho creato una versione DOM di un file XML. Ora voglio cambiare un attributo di un elemento nel file. Ho chiamato un metodo che ha chiamato un metodo nella classe che controlla il DOM, e ho ricevuto una finestra di dialogo che diceva "Le valutazioni del thread JDI hanno riscontrato un problema. Esecuzione dell'eccezione durante l'elaborazione della coda dei thread asincroni" durante il debug.JDI Thread Evaluations ha riscontrato un problema

Sono un neofita relativamente a Java e non ho riscontrato un simile errore e non ho idea di cosa lo stia causando.

Se qualcuno ha qualche suggerimento per quanto riguarda la causa del problema e/o modi per risolvere il problema ...

Grazie mille!

risposta

6

Java Debug Interface (JDI) fa parte di Java Platform Debugger Architecture. Un modo apparente per attivare questa eccezione si verifica quando il metodo toString() di un oggetto restituisce incautamente null. C'è un'interessante discussione here. Potresti provare un debugger diverso e non sarebbe male convalidare il tuo XML.

+0

abbastanza interessante, la prossima volta che ho provato a eseguire/eseguire il debug del programma, non ho avuto alcun problema. – chama

+1

In effetti, diverse discussioni hanno menzionato errori intermittenti. Questo mi fa sempre pensare ai problemi di sincronizzazione dei thread: un'inizializzazione differita, ad esempio, che potrebbe apparire 'null' su un thread ma non su un altro. – trashgod

54

Tieni d'occhio le espressioni "Guarda": se non ne hai bisogno, rimuovile tutte. A volte determinate espressioni di controllo hanno causato questo messaggio di errore per me.

Questo potrebbe anche spiegare perché succede a intermittenza per le persone (a volte hanno le assegnazioni di orologi che causano l'errore, tuttavia il riavvio o la rimozione l'orologio a destra in grado di risolvere il problema a loro insaputa.)

+1

Il tuo consiglio mi ha fatto risparmiare un sacco di tempo. Molte grazie. –

+2

Felice di aiutare - mi stava facendo impazzire anche – Anthony

+1

Questa è la risposta corretta! – mattboy

1

il problema può si verificano anche se la ricerca dell'origine non è configurata correttamente. Ad esempio, diciamo che uno vuole guardare l'espressione foo.bar(). Ora se la ricerca dell'origine è configurata in modo errato, il debugger non è in grado di risolvere l'associazione per l'espressione foo (vedere this eclipse bug). Quindi l'invocazione di .bar() avrà esito negativo con una NullPointerException.

4

Questo errore si verifica in modo discreto alcune volte durante il debug. È possibile pulire questo rimuovendo tutte le dichiarazioni di controllo e tutti i punti di interruzione e riavviando Eclipse.

0

Questo problema può verificarsi se si dispone di "Dettagli formattatori" configurati per classi specifiche (in Eclipse: Java -> Debug -> Dettagli formattazioni). Prova a disabilitarli.