2010-11-09 72 views
1

我們有一個應用程序,它在登錄頁面上啓動,然後導航到加載小程序的第二頁。一切都很好。當用戶註銷時,瀏覽器將導航回登錄屏幕。如果用戶再次登錄,則當applet的一部分被初始化時,瀏覽器崩潰。這隻發生在小程序的第二次加載。緩存在瀏覽器中被禁用,但瀏覽器從未完全關閉,所以我認爲在第一次登錄時加載的小程序仍然存在?第二次啓動時Applet崩潰 - 提供了錯誤日誌

更多信息。加載小程序時,會出現sun java控制檯。當用戶註銷並返回到登錄屏幕時,即使登錄屏幕不使用java(僅html和javascript),sun java控制檯仍處於啓動狀態。我認爲當用戶註銷時,某些東西沒有被重新初始化,但是applet停止並被銷燬,所以還有什麼東西可以懸掛?
奇怪的是,這隻發生在一臺測試機器上,而沒有發生在其他測試機器上。

下面是從SJC錯誤日誌:

java.lang.NullPointerException 
    at javax.swing.text.html.parser.Parser.errorContext(Unknown Source) 
    at javax.swing.text.html.parser.Parser.parse(Unknown Source) 
    at javax.swing.text.html.parser.DocumentParser.parse(Unknown Source) 
    at javax.swing.text.html.parser.ParserDelegator.parse(Unknown Source) 
    at javax.swing.text.html.HTMLEditorKit.read(Unknown Source) 
    at javax.swing.JEditorPane.setText(Unknown Source) 
    at ReportPane.setDescription(ReportPane.java:577) 
    at ReportPane.doDefineLoad(ReportPane.java:608) 
    at ReportPane.<init>(ReportPane.java:565) 
    at RevApp2.createGui(RevApp2.java:640) 
    at RevApp2.access$0(RevApp2.java:414) 
    at RevApp2$1.run(RevApp2.java:393) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
asDescription-><font face="CENTURY SCHOOLBOOK">Use to assign accounts to coders.</font> 
java.lang.reflect.InvocationTargetException 
    at java.awt.EventQueue.invokeAndWait(Unknown Source) 
    at javax.swing.SwingUtilities.invokeAndWait(Unknown Source) 
    at RevApp2.init(RevApp2.java:389) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at javax.swing.text.html.parser.Parser.errorContext(Unknown Source) 
    at javax.swing.text.html.parser.Parser.parse(Unknown Source) 
    at javax.swing.text.html.parser.DocumentParser.parse(Unknown Source) 
    at javax.swing.text.html.parser.ParserDelegator.parse(Unknown Source) 
    at javax.swing.text.html.HTMLEditorKit.read(Unknown Source) 
    at javax.swing.JEditorPane.setText(Unknown Source) 
    at AdminPane.setDescription(AdminPane.java:197) 
    at AdminPane.<init>(AdminPane.java:174) 
    at RevApp2.createGui(RevApp2.java:656) 
    at RevApp2.access$0(RevApp2.java:414) 
    at RevApp2$1.run(RevApp2.java:393) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
netscape.javascript.JSException: Unspecified error invoking method or accessing property "accountfocus" 
    at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source) 
    at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source) 
    at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source) 
    at RevApp2.start(RevApp2.java:2045) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Exception: netscape.javascript.JSException: Unspecified error invoking method or accessing property "accountfocus" 

回答

1

如果谷歌「javax.swing.text.html.parser.Parser.errorContext」你會發現,其他人也有類似的問題,並已上報他們在某些Oracle討論區:

http://forums.oracle.com/forums/thread.jspa?messageID=8297744&tstart=0

他們談論解決類似的問題 - 也許這可能適合你的情況也是如此。

Qute從論壇:

我不明白這究竟是 右端遊,但是卻能逃避 它時,我就是這麼做的。 JEdi​​torPane htmlPane = new JEditorPane(「text/html」,html);這是一個JEditorPane插件。

+0

是。這恰恰是對的。事實證明,這個錯誤未顯示的機器沒有最新的JRE版本。它確實顯示它有1.60 build 22.它是一個已註冊的java錯誤,解決方法是100%有效。謝謝。 – Elliott 2010-11-10 01:19:30

1

解決有關此問題可能是以下幾點:

editorPane.setEditorKit(new HTMLEditorKit() { 
    protected Parser getParser() { 
    try { 
    Class c = Class 
     .forName("javax.swing.text.html.parser.ParserDelegator"); 
    Parser defaultParser = (Parser) c.newInstance(); 
    return defaultParser; 
    } catch (Throwable e) { 
    } 
    return null; 
    } 
    });