--- old/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2014-04-01 14:00:02.000000000 -0700 +++ new/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp 2014-04-01 14:00:02.000000000 -0700 @@ -33,9 +33,16 @@ #include "awt_BitmapUtil.h" #include "D3DRenderQueue.h" + // REMIND: move to awt_Component.h extern "C" HWND AwtComponent_GetHWnd(JNIEnv *env, jlong pData); +/* This looks weird. but since some AWT headers need to be included, + * we end up with AWT's alloc.h macro definition of ExceptionOccurred. + * The reasons for that re-defintion do not apply to this code, so undef it. + */ +#undef ExceptionOccurred + /** * Initializes nativeWidth/Height fields of the SurfaceData object with * dimensions on the native surface. @@ -55,7 +62,9 @@ } JNU_SetFieldByName(env, NULL, sdObject, "nativeWidth", "I", width); + if (!(env->ExceptionOccurred())) { JNU_SetFieldByName(env, NULL, sdObject, "nativeHeight", "I", height); + } env->DeleteLocalRef(sdObject); }