harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4803) [classlib][awt] firepropertyChange only when it really change?
Date Tue, 18 Sep 2007 20:25:44 GMT

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

Alexei Zakharov commented on HARMONY-4803:
------------------------------------------

The above example hangs on RI too - looks like we are on the right way. BTW, I've found out
that the following methods can cause the dead lock too:

java.awt
  Button
    setEnabledImpl(boolean)
    setLabel(String)
  Checkbox
    setChecked(boolean)
    setEnabledImpl(boolean)
  Choice
    select(int)
  Component
    setBackground(Color)
    setFontImpl(Font)
    setForeground(Color)
  Label
    setEnabledImpl(boolean)
  TextComponent
    setEditable(boolean)
    setEnabledImpl(boolean)
  TextField
    scrollRectToVisible(Rectangle)
    setEchoChar(char)

Therefore, it looks like we should fix them as well.



> [classlib][awt] firepropertyChange only when it really change?
> --------------------------------------------------------------
>
>                 Key: HARMONY-4803
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4803
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>         Environment: Win32 + Linux32
>            Reporter: Chunrong Lai
>            Assignee: Alexei Zakharov
>         Attachments: H4803.fixedforeground.patch, H4803.fixedreproducer.patch
>
>
>  Below reproducer shows the reaint and  firePropertyChange triggered from setBackground().
>  Harmony falls into a dead loop setBackground()->repaint()->update()->paint()->setBackground().
>  It is easy to break the loop if we only repaint (and firepropertyChange) when the old
background does not equal to the new background.
>  I believe there are other similar issues like this.
> import   java.awt.*   ;   
> import   java.awt.event.*   ;   
>     
> class   MyPanel   extends   Panel{   
>   int   flag   =   0   ;   
>     
>   public   void   paint(Graphics   g){   
>     setBackground(Color.blue)   ;   
>     System.out.println   ("hi")   ;   
>   }   
> }   
>     
> public class   MyFrame   extends   Frame{   
>   MyFrame(){   
>     add(new MyPanel())   ;   
>     setSize(300,200)   ;   
>     setVisible(true)   ;   
>   }   
>   public   static   void   main(String   args[]){   
>     new   MyFrame()   ;   
>   }   
> } 

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