簡體   English   中英

InterruptedException在printStacktrace j2me中引發NullPointerException

[英]InterruptedException bringing up NullPointerException in printStacktrace j2me

我正在處理j2me中的midlet,我有這個線程類(比如叫chan),它只執行以下操作:

public class Chan extends Thread {

    public void run(){
        try {
            Thread.sleep(5000);
        } catch (InterruptedException ex) {
          System.err.println("Chan thread woke up " + ex.toString());
                    ex.printStackTrace();
           System.err.println("Stacktrace end");
        }
    }
}

我正在嘗試一個chan.interrupt(); 從主要的midlet代碼,只執行以下操作:

public void startApp() {

    Chan ch = new Chan();
    ch.start();

    try {
        Thread.sleep(1000);
    } catch (InterruptedException ex) {
        System.err.println("error interrupting: "+ ex.toString());
        ex.printStackTrace();
    }
    ch.interrupt();
}

我收到的是這個:

Chan thread woke up java.lang.InterruptedException  
java.lang.InterruptedException  
java.lang.NullPointerException
    at org.netbeans.mobility.antext.StackTraceTranslator.getLineNumber(StackTraceTranslator.java:219)
    at org.netbeans.mobility.antext.StackTraceTranslator.translate(StackTraceTranslator.java:121)
    at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.flush(RunTask.java:780)
    at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.run(RunTask.java:826)
    at java.lang.Thread.run(Thread.java:722)`

提到的行是在Thread的run方法中:

public void run() {
    if (target != null) {
        target.run(); <-- 722nd line 
    }
}

除了奇怪的堆棧跟蹤之外,程序中的所有內容似乎都運行正常。 如果我只刪除Chan線程中的printStacktrace ,則不會打印出這樣的nullpointerException。

所以我不明白這個nullpointerexception試圖告訴我什么,也不知道為什么interrupttedexception的堆棧跟蹤是1行而其余的跟蹤缺失。

模擬器是Oracle Java(TM)Platform Micro Edition SDK 3.0.5,我正在研究Netbeans

這是Netbeans中的一個錯誤:

http://netbeans.org/bugzilla/show_bug.cgi?id=170792

它已經解決,所以嘗試升級到最新版本的Netbeans。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM