changeset 9605:166f72ffcf18

8035858: [parfait] JNI exception pending in jdk/src/windows/native/sun/windows/awt_Desktop.cpp Reviewed-by: serb, pchelko
author azvegint
date Wed, 05 Mar 2014 16:33:00 +0400
parents 50f46b8416bb
children 9bf152a802af
files src/windows/native/sun/windows/awt_Desktop.cpp
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/windows/native/sun/windows/awt_Desktop.cpp	Wed Mar 05 15:47:27 2014 +0400
+++ b/src/windows/native/sun/windows/awt_Desktop.cpp	Wed Mar 05 16:33:00 2014 +0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -23,6 +23,7 @@
  * questions.
  */
 
+#include "jni_util.h"
 #include "awt.h"
 #include <jni.h>
 #include <shellapi.h>
@@ -41,7 +42,12 @@
   (JNIEnv *env, jclass cls, jstring fileOrUri_j, jstring verb_j)
 {
     LPCWSTR fileOrUri_c = JNU_GetStringPlatformChars(env, fileOrUri_j, JNI_FALSE);
+    CHECK_NULL_RETURN(fileOrUri_c, NULL);
     LPCWSTR verb_c = JNU_GetStringPlatformChars(env, verb_j, JNI_FALSE);
+    if (verb_c == NULL) {
+        JNU_ReleaseStringPlatformChars(env, fileOrUri_j, fileOrUri_c);
+        return NULL;
+    }
 
     // 6457572: ShellExecute possibly changes FPU control word - saving it here
     unsigned oldcontrol87 = _control87(0, 0);