[ https://issues.apache.org/jira/browse/HARMONY-4755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525667
]
Vasily Zakharov commented on HARMONY-4755:
------------------------------------------
Alexey, thank you very much for your comments!
Sure, you're right about thread-unsafety, though there are Sun examples using this approach,
see [1] for example. So, though it's not fully correct, it's probably, at a stretch, acceptable.
So we probably better make this scheme operational whenever possible. Moreover, the described
problem was encountered on a real application, Abbot Costello, so we have one more reason
to fix it.
As for the patch - you're probably right, thanks. I'll check the synchronization carefully.
As of the locking error, I fully agree with you and am now searching for the problem point.
As I succeed, it would probably be another JIRA.
[1] http://java.sun.com/developer/onlineTraining/new2java/supplements/2006/Jan06.html
> [classlib][swing][html] JEditorPane.setPage() throws NPE
> --------------------------------------------------------
>
> Key: HARMONY-4755
> URL: https://issues.apache.org/jira/browse/HARMONY-4755
> Project: Harmony
> Issue Type: Bug
> Components: Classlib
> Reporter: Vasily Zakharov
> Assignee: Alexey A. Ivanov
> Priority: Minor
> Attachments: Harmony-4755-Fix.patch
>
>
> If JEditorPane.setPage() is called on a visible pane and passed an HTML URL, NPE occurs.
> Here's the simple reproducer:
> import javax.swing.JEditorPane;
> import javax.swing.JFrame;
> public class Test {
> public static void main(String argv[]) {
> try {
> JFrame frame = new JFrame("Test");
> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> frame.setSize(100, 100);
> JEditorPane pane = new JEditorPane();
> frame.add(pane);
> frame.setVisible(true);
> pane.setPage("file:test.html");
> } catch (Throwable e) {
> e.printStackTrace(System.out);
> }
> }
> }
> test.html should exist in current directory and may be empty.
> This test produces the following exception on Harmony:
> java.lang.NullPointerException
> at javax.swing.text.html.BlockView.paint(BlockView.java:77)
> at javax.swing.text.RootView.paint(RootView.java:211)
> at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:839)
> at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:88)
> at javax.swing.plaf.ComponentUI.update(ComponentUI.java:38)
> at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:955)
> at javax.swing.JComponent.paintComponent(JComponent.java:897)
> at javax.swing.JComponent.paint(JComponent.java:994)
> at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:1425)
> at javax.swing.JComponent.paintImmediately(JComponent.java:156)
> at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:186)
> at javax.swing.RepaintManager$1.run(RepaintManager.java:80)
> at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:98)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:78)
> at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:138)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:144)
> at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:74)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)
> To see the exception, please enable stack trace printing at EventDispatchThread.java,
line 89.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|