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