Il problema POTREBBE dipendere dal fatto che molti componenti swing, compreso il JTextPane, sono thread safe, ovvero hanno incorporati dei meccanismi di protezioni per evitare che possano essere modificati in modo concorrente da piu thread producendo risulati inconsistenti. In particolare i componenti di un'interfaccia grafica non dovrebbero essere modificati da thread diversi da quello che si occupa di fare il dispatching degli eventi dell'interfaccia grafica stessa: nel tuo caso potrebbe darsi che il thread dell'interfaccia grafica stabilisce un lock sul JTextPane, cosi quando tu cerchi di settargli il testo, il tuo thread rimane bloccato in modo definitivo. Per sapere come lavorare con i thread e i componenti grafici prova a leggere qua:

http://java.sun.com/products/jfc/swi...e/threads.html