2009-05-26 65 views
0

我有一個構建在Eclipse上的應用程序的一小塊控件,並且在創建DefaultCellEditor時遇到了問題。該代碼實際上使用了DefaultCellEditor的一個子類,但我可以使用DefaultCellEditor重新創建問題,所以這就是我要問的問題,希望它能解決實際類的問題。我已經用JDK 1.5和1.6試了這個,並且在兩者中都得到相同的行爲。應用程序掛起調用DefaultCellEditor的構造函數

的問題發生時DefaultCellEditor調用構造函數:

log.debug("Trying construction."); 
currentCellEditor = new DefaultCellEditor(new JTextField()); 
log.debug("Constructed OK."); 

運行此代碼時,時間也許20%,應用程序掛起,和CPU在100%掛了 - 看起來有在那裏有一個無限循環,但我不知道在哪裏。第一行日誌行被打印,但第二行不是。

我試着製作DefaultCellEditor類的副本,並在其中插入System.out.println語句,以查看是否可以找出發生問題的位置;在代碼正確運行的時候,我的所有調試語句都會被打印出來,但是如果它沒有正確運行,則沒有任何語句被打印出來,幾乎就像調用構造函數之前發生的那樣。任何想法可能發生什麼?

+2

您可以執行線程轉儲(Windows上的控制中斷)並查看您的線程正在運行或正在等待的位置。 – 2009-05-26 20:28:06

回答

0

這兩個問題的意見都很有幫助。我能夠使用線程轉儲並找出導致該循環的原因(我最終使用了StackTrace)。我的另一個問題是,當我在美國東部時間早些時候,在這個代碼實際運行的時候,它不再在EDT上 - 所以現在我必須跟蹤下來,但是一些早期的測試表明,把它放在EDT上可能會解決問題。謝謝!