[OpenJDK 2D-Dev] <AWT Dev> [8] Please review fix for 7175183: [macosx] Objective-C exception thrown when switching monitor configuration

Alexander Zuev alexander.zuev at oracle.com
Tue Sep 4 18:09:18 UTC 2012

On 9/4/12 21:45, Phil Race wrote:
> On 9/4/2012 10:27 AM, Alexander Zuev wrote:
>> Phil,
>> On 9/4/12 21:05, Phil Race wrote:
>>> Alexander,
>>> This is a shared code change. Did you test it on Windows ?
>> Not yet - i'm building Windows version of jdk8 with that fix right 
>> now and will test it tomorrow
>> but i don't see how changing of the sequence of invalidation of 
>> accelerated texture and getting
>> of the backup surface can negatively affect the execution. But i will 
>> have to test it nevertheless.
>>> In fact, can you explain why this has not been seen on Windows
>>> in the many years now that we've had this code ? eg, did we
>>> recently introduce a regression, is this MacOS specific ?
>> I think the reason is the hardware configuration common for Mac and 
>> rarely
>> found in PC's. Here's the way to introduce this bug:
>> 1. User has to run Java application with the jdk7 or jdk8 on the 
>> notebook display
>> 2. Then user has to close notebook lid. MacOS will then enter sleep 
>> mode immediately
>> 3. Then user has to connect external display without opening the 
>> notebook lid - notebook will
>> automatically wake up and the applications will reemerge on the 
>> different desktop
>> At this stage user may receive the exception (he may not receive it - 
>> of three mac notebooks
>> i tried that approach i only got an exception on one). Looks like 
>> problem is caused by the fact
>> that while notebook is working with the integrated display it is 
>> being powered by the less
>> powerful of the two adapters (unless configured differently) but 
>> integrated graphics adapter can not
>> be used with the external display so system has to switch to discrete.
>> I don't think there's any hardware around where i can attempt to 
>> reproduce this behavior on Windows - on
>> MacBook Windows only works with the discrete graphics adapter.
> So for a single card, switching from 1280x1024 to 1024x768 isn't 
> enough  to enter this code ?
Nope, as far as i can see the problem introduces only when we get the 
graphics adapter being actually changed.

With best regards,
> -phil.
>> With best regards,
>> Alex
>>> -phil.
>>> On 9/4/2012 9:18 AM, Alexander Zuev wrote:
>>>> Hello,
>>>>   please review my fix for CR 7175183: [macosx] Objective-C 
>>>> exception thrown when switching monitor configuration
>>>>   The NPE happens because of the getBackupSurface method call may 
>>>> result in the resetting of the current accelerated surface to null. 
>>>> The idea of the fix is to move the invalidation of the accelerated 
>>>> surface before the getBackupSurface() call.
>>>> Bug description is: 
>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7175183
>>>> Webrev can be found here: 
>>>> http://cr.openjdk.java.net/~kizune/7175183/webrev.01
>>>> With best regards,
>>>> Alex

More information about the 2d-dev mailing list