Java Socket 多執行緒程式中,偶爾會在 AWT-EventQueue-0 執行緒出現 javax.swing.plaf.basic.BasicListUI 的 NullPointerException,雖然程式仍可正常運行,但主控台會印出堆疊追蹤。這通常與 Swing 的事件分派執行緒(EDT)有關。
Swing 元件必須在 EDT 中更新,若 Socket 接收執行緒直接修改 JList 或其他元件,就可能造成執行緒不安全的 NullPointerException。建議使用 SwingUtilities.invokeLater() 將介面更新排入 EDT,並檢查清單模型(ListModel)是否為 null,這樣可減少非預期的例外。