[OpenJDK 2D-Dev] Review Request for bug (JDK-8039345) Strange behaviour of per-pixel translucency on linux

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Tue Feb 24 11:35:14 UTC 2015


the fix looks good to me.

Thanks,

Alexander.

On 02/24/2015 02:26 PM, prasanta sadhukhan wrote:
> Thanks Alexander.
> Here is the updated webrev 
> http://cr.openjdk.java.net/~serb/prasanta/8039345/webrev.02
>
> Regards
> Prasanta
> On 2/19/2015 8:55 PM, Alexander Zvegintsev wrote:
>>> Could you explain bit more? not sure I understand what you wanted me 
>>> to do? 
>>
>> In current version of test all swing methods(including JFrame 
>> constructor) are invoked on the main thread,
>> this can lead to some vague issues. To avoid such issues they should 
>> be wrapped with SwingUtilities.invokeAndWait()
>> or with SwingUtilities.invokeLater(). For example in 
>> bug6505523.java[0] all swing related calls are placed
>> on EDT, all robot related are placed on the main thread.
>> You can grep through tests directory to find other usages.
>>
>> BTW, there are many unused imports in the test and 
>> ComponentResizeTest extends JFrame for no reason.
>>
>> [0] 
>> http://hg.openjdk.java.net/jdk9/client/jdk/file/c867d4d46b58/test/javax/swing/JTree/6505523/bug6505523.java
>>
>> Thanks,
>>
>> Alexander.
>>
>> On 02/19/2015 04:56 PM, prasanta sadhukhan wrote:
>>> Hi ALexander.
>>> On 2/19/2015 6:55 PM, Alexander Zvegintsev wrote:
>>>> Hello Prasanta,
>>>>
>>>> I have a couple of comments regarding the test:
>>>>
>>>> We should invoke swing methods on EDT [0].
>>>>
>>> Could you explain bit more? not sure I understand what you wanted me 
>>> to do?
>>>> I think that this test might be improved by showing an instruction
>>>> window before test begins. Instruction should explain what is about
>>>> to happen, what behavior is correct. Tester will get a better 
>>>> understanding
>>>> of what to expect from the test, he will not miss the test start in 
>>>> case
>>>> if he gets distracted.
>>>>
>>> Ok. will do.
>>>
>>> Regards
>>> Prasanta
>>>> [0] 
>>>> http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html 
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Alexander.
>>>>
>>>> On 02/17/2015 03:43 PM, prasanta sadhukhan wrote:
>>>>> A reg. testcase is added to the webrev
>>>>> http://cr.openjdk.java.net/~serb/prasanta/8039345/webrev.01/
>>>>> Regarding the transparency parameter, I decided not to remove it 
>>>>> as of now for firstly, it has no bearing on this bug as per our 
>>>>> testing and secondly, it might be needed in future.
>>>>>
>>>>> Regards
>>>>> Prasanta
>>>>> On 2/14/2015 1:33 AM, Phil Race wrote:
>>>>>> I tried again and this time it works for me so it seems like it 
>>>>>> was a false alarm.
>>>>>> If the transparency parameter is really un-needed then you can 
>>>>>> remove it but
>>>>>> you should take a look to see if it appears to be an oversight 
>>>>>> that it is not used
>>>>>> A reg. test for this fix is desirable.
>>>>>>
>>>>>> -phil.
>>>>>>
>>>>>> On 02/13/2015 04:08 AM, prasanta sadhukhan wrote:
>>>>>>> I tried my fix on latest ubuntu14.04 and it seems to work for 
>>>>>>> me, the checkbox and button gets painted without any trails and 
>>>>>>> without any exception.
>>>>>>> Also, regarding Clemens suggestion that "Transparency.OPAQUE is 
>>>>>>> also passed to the super constructor of XRWindowSurfaceData" it 
>>>>>>> is observed that the "transparancy" parameter is not used in the 
>>>>>>> super constructor so it shouldn't have any effect on this 
>>>>>>> particular bug, maybe we can remove the parameter from the super 
>>>>>>> constructor for its lack of use.
>>>>>>>
>>>>>>> Regards
>>>>>>> Prasanta
>>>>>>> On 2/10/2015 3:34 AM, Phil Race wrote:
>>>>>>>> I tried this on Ubuntu (13.04) with the test case in the bug 
>>>>>>>> (BTW there should be a regression test
>>>>>>>> along with this fix) and I get a nasty exception (as below) and 
>>>>>>>> the checkbox and button don't get painted.
>>>>>>>>
>>>>>>>> Exception in thread "AWT-EventQueue-0" 
>>>>>>>> java.lang.NullPointerException
>>>>>>>>     at 
>>>>>>>> sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:196)
>>>>>>>>     at sun.java2d.SunGraphics2D.copyImage(SunGraphics2D.java:3232)
>>>>>>>>     at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3396)
>>>>>>>>     at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3345)
>>>>>>>>     at 
>>>>>>>> java.awt.Component$BltBufferStrategy.showSubRegion(Component.java:4472) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> java.awt.Component$BltSubRegionBufferStrategy.show(Component.java:4597) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> javax.swing.BufferStrategyPaintManager.flushAccumulatedRegion(BufferStrategyPaintManager.java:371)
>>>>>>>>     at 
>>>>>>>> javax.swing.BufferStrategyPaintManager.endPaint(BufferStrategyPaintManager.java:333)
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager.endPaint(RepaintManager.java:1387)
>>>>>>>>     at javax.swing.JComponent.paint(JComponent.java:1041)
>>>>>>>>     at 
>>>>>>>> java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116) 
>>>>>>>>
>>>>>>>>     at java.awt.Container.paint(Container.java:1997)
>>>>>>>>     at java.awt.Window.paint(Window.java:3929)
>>>>>>>>     at javax.swing.RepaintManager$4.run(RepaintManager.java:851)
>>>>>>>>     at javax.swing.RepaintManager$4.run(RepaintManager.java:823)
>>>>>>>>     at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>     at 
>>>>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:798) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:747) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager.access$1300(RepaintManager.java:65)
>>>>>>>>     at 
>>>>>>>> javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1751)
>>>>>>>>     at 
>>>>>>>> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
>>>>>>>>     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:759)
>>>>>>>>     at java.awt.EventQueue.access$500(EventQueue.java:97)
>>>>>>>>     at java.awt.EventQueue$3.run(EventQueue.java:712)
>>>>>>>>     at java.awt.EventQueue$3.run(EventQueue.java:706)
>>>>>>>>     at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>>     at 
>>>>>>>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>>>>>>>>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:729)
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:190)
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:115)
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:104)
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:100) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:92) 
>>>>>>>>
>>>>>>>>     at 
>>>>>>>> java.awt.EventDispatchThread.run(EventDispatchThread.java:81)
>>>>>>>>
>>>>>>>> -phil.
>>>>>>>>
>>>>>>>> On 02/05/2015 03:31 AM, prasanta sadhukhan wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Please review a fix for this issue:
>>>>>>>>> 8039345 Strange behaviour of per-pixel translucency on linux
>>>>>>>>>
>>>>>>>>> Bug description: https://bugs.openjdk.java.net/browse/JDK-8039345
>>>>>>>>> webrev: 
>>>>>>>>> http://cr.openjdk.java.net/~serb/prasanta/8039345/webrev.00/
>>>>>>>>>
>>>>>>>>> Note: A wrong (PictStandardRGB24) picture format was used for 
>>>>>>>>> xrendering even for surface having alpha support thereby 
>>>>>>>>> neglecting the alpha transparency. It should be using 
>>>>>>>>> PictStandardARGB32 or TRANSLUCENT picture format for correct 
>>>>>>>>> alpha support in xrendered surface.
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>




More information about the 2d-dev mailing list