--- old/src/solaris/native/sun/awt/awt_Font.c 2014-02-14 22:46:58.490280664 -0800 +++ new/src/solaris/native/sun/awt/awt_Font.c 2014-02-14 22:46:58.286283226 -0800 @@ -452,6 +452,7 @@ int32_t i, size; char *fontsetname = NULL; char *nativename = NULL; + Boolean doFree = FALSE; jobjectArray componentFonts = NULL; jobject peer = NULL; jobject fontDescriptor = NULL; @@ -491,8 +492,10 @@ if (!JNU_IsNull(env, fontDescriptorName)) { nativename = (char *) JNU_GetStringPlatformChars(env, fontDescriptorName, NULL); + doFree = TRUE; } else { nativename = ""; + doFree = FALSE; } fdata->flist[i].xlfd = malloc(strlen(nativename) @@ -500,7 +503,7 @@ jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10, nativename, size * 10); - if (nativename != NULL && nativename != "") + if (nativename != NULL && doFree) JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename); /*