# HG changeset patch # User serb # Date 1395055918 -14400 # Node ID 866c3d52a4dfb8b2cab1bf27c14895088c351fe8 # Parent 1bc509cbe2a35bdd87e56edd0634c731be85687d 8035743: [parfait] JNI exception pending in jdk/src/windows/native/sun/windows/awt_Frame.cpp Reviewed-by: pchelko, azvegint diff -r 1bc509cbe2a3 -r 866c3d52a4df jdk/src/windows/native/sun/windows/awt_Frame.cpp --- a/jdk/src/windows/native/sun/windows/awt_Frame.cpp Mon Mar 17 13:10:24 2014 +0400 +++ b/jdk/src/windows/native/sun/windows/awt_Frame.cpp Mon Mar 17 15:31:58 2014 +0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -173,8 +173,11 @@ BOOL isEmbeddedInstance = FALSE; BOOL isEmbedded = FALSE; cls = env->FindClass("sun/awt/EmbeddedFrame"); + if (cls) { isEmbeddedInstance = env->IsInstanceOf(target, cls); + } else { + throw std::bad_alloc(); } INT_PTR handle; if (isEmbeddedInstance) { @@ -189,6 +192,8 @@ cls = env->FindClass("sun/awt/LightweightFrame"); if (cls) { isLightweight = env->IsInstanceOf(target, cls); + } else { + throw std::bad_alloc(); } frame->m_isLightweight = isLightweight; @@ -260,7 +265,11 @@ // for input method windows, use minimal decorations inputMethodWindowCls = env->FindClass("sun/awt/im/InputMethodWindow"); - if ((inputMethodWindowCls != NULL) && env->IsInstanceOf(target, inputMethodWindowCls)) { + if (inputMethodWindowCls == NULL) { + throw std::bad_alloc(); + } + + if (env->IsInstanceOf(target, inputMethodWindowCls)) { //for below-the-spot composition window, use no decoration if (env->GetBooleanField(target, AwtFrame::undecoratedID) == JNI_TRUE){ exStyle = 0; @@ -1609,9 +1618,10 @@ TRY; AwtFrame::setExtendedStateMID = env->GetMethodID(cls, "setExtendedState", "(I)V"); - AwtFrame::getExtendedStateMID = env->GetMethodID(cls, "getExtendedState", "()I"); + DASSERT(AwtFrame::setExtendedStateMID); + CHECK_NULL(AwtFrame::setExtendedStateMID); - DASSERT(AwtFrame::setExtendedStateMID); + AwtFrame::getExtendedStateMID = env->GetMethodID(cls, "getExtendedState", "()I"); DASSERT(AwtFrame::getExtendedStateMID); CATCH_BAD_ALLOC; @@ -1785,35 +1795,6 @@ /************************************************************************ - * EmbeddedFrame native methods - */ - -extern "C" { - -/* - * Class: sun_awt_EmbeddedFrame - * Method: setPeer - * Signature: (Ljava/awt/peer/ComponentPeer;)V - */ -JNIEXPORT void JNICALL -Java_sun_awt_EmbeddedFrame_setPeer(JNIEnv *env, jobject self, jobject lpeer) -{ - TRY; - - jclass cls; - jfieldID fid; - - cls = env->GetObjectClass(self); - fid = env->GetFieldID(cls, "peer", "Ljava/awt/peer/ComponentPeer;"); - env->SetObjectField(self, fid, lpeer); - - CATCH_BAD_ALLOC; -} - -} /* extern "C" */ - - -/************************************************************************ * WEmbeddedFrame native methods */ @@ -1831,6 +1812,7 @@ AwtFrame::handleID = env->GetFieldID(cls, "handle", "J"); DASSERT(AwtFrame::handleID != NULL); + CHECK_NULL(AwtFrame::handleID); AwtFrame::activateEmbeddingTopLevelMID = env->GetMethodID(cls, "activateEmbeddingTopLevel", "()V"); DASSERT(AwtFrame::activateEmbeddingTopLevelMID != NULL);