I think this defect may be a thread-safe problem. I read HARMONY's PropertyChangeSupport code and found that: It employs ArrayList to store the property change listeners which is not thread-safe. This defect occurs in a private doFirePropertyChange method. This method may asynchronously use the list of PropertyChangeListener, which contains a null value when modification (add or remove) of the list has not finished.
On Wed, Nov 19, 2008 at 11:06 AM, Regis Xu (JIRA) <[EMAIL PROTECTED]> wrote: > > [ > https://issues.apache.org/jira/browse/HARMONY-6009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12648900#action_12648900] > > Regis Xu commented on HARMONY-6009: > ----------------------------------- > > I can't recreate it neither, both on M7 and M8, may be caused by different > environment? > > > [classlib][beans] NPE launching swingset2 example > > ------------------------------------------------- > > > > Key: HARMONY-6009 > > URL: https://issues.apache.org/jira/browse/HARMONY-6009 > > Project: Harmony > > Issue Type: Bug > > Components: Classlib > > Environment: Win32 > > Harmony r715566 > > Reporter: Tim Ellison > > > > harmony thorws a NullPointerException when launching swingset2 example > > hdk\jdk\jre\bin\java.exe -jar c:\apachecon\swingset\SwingSet2.jar > > Uncaught exception in main: > > java.lang.reflect.InvocationTargetException > > at java.lang.reflect.VMReflection.invokeMethod(VMReflection.java) > > at java.lang.reflect.Method.invoke(Method.java:317) > > at org.apache.harmony.vm.JarRunner.main(JarRunner.java:89) > > Caused by: java.lang.NullPointerException > > at > java.beans.PropertyChangeSupport.doFirePropertyChange(PropertyChangeSupport.java:263) > > at > java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:54) > > at java.awt.Component.firePropertyChangeImpl(Component.java:1669) > > at java.awt.Component.firePropertyChange(Component.java:1683) > > at javax.swing.JComponent.setBorder(JComponent.java:747) > > at javax.swing.LookAndFeel.uninstallBorder(LookAndFeel.java:163) > > at > javax.swing.plaf.basic.BasicInternalFrameUI.uninstallDefaults(BasicInternalFrameUI.java:790) > > at > javax.swing.plaf.basic.BasicInternalFrameUI.uninstallUI(BasicInternalFrameUI.java:560) > > at > javax.swing.plaf.metal.MetalInternalFrameUI.uninstallUI(MetalInternalFrameUI.java:105) > > at javax.swing.JComponent.setUI(JComponent.java:1294) > > at javax.swing.JInternalFrame.setUI(JInternalFrame.java:539) > > at javax.swing.JInternalFrame.updateUI(JInternalFrame.java:558) > > at > javax.swing.SwingUtilities.updateComponentTreeUILevel(SwingUtilities.java:374) > > at > javax.swing.SwingUtilities.updateComponentTreeUILevel(SwingUtilities.java:386) > > at > javax.swing.SwingUtilities.updateComponentTreeUILevel(SwingUtilities.java:386) > > at > javax.swing.SwingUtilities.updateComponentTreeUI(SwingUtilities.java:365) > > at SwingSet2.setDemo(SwingSet2.java:726) > > at SwingSet2.preloadFirstDemo(SwingSet2.java:684) > > at SwingSet2.<init>(SwingSet2.java:225) > > at SwingSet2.main(SwingSet2.java:248) > > at java.lang.reflect.VMReflection.invokeMethod(VMReflection.java) > > ... 2 more > > -- > This message is automatically generated by JIRA. > - > You can reply to this email to add a comment to the issue online. > >
