harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey A. Ivanov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4755) [classlib][swing][html] JEditorPane.setPage() throws NPE
Date Tue, 11 Sep 2007 06:06:32 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12526354
] 

Alexey A. Ivanov commented on HARMONY-4755:
-------------------------------------------

Vasily,

Thank you for investigating the issue. But could you please provide more details? You haven't
described the type of conflict at all. How am I supposed to understand where it is?

readLock() is not supposed to be exclusive operation. What is guaranteed is no writing to
document occurs while document is being read by any number of threads. Similarly no thread
can read document data while it is being written. From this point of view I see no conflict
here. If the statements are not true, it's a bug.

At the same time, the stack trace in your first comment suggests that a thread tries to call
readUnlock() on a document without locking it before.

> [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.


Mime
View raw message