2010-11-09 69 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; 
    } 
    });