@@ -246,6 +246,7 @@ Java_sun_print_CUPSPrinter_getCupsDefaultPrinters(JNIEnv *env,
246246 for (i = 0 ; i < num_dests ; i ++ ) {
247247 utf_str = JNU_NewStringPlatform (env , dests [i ].name );
248248 if (utf_str == NULL ) {
249+ (* env )-> ExceptionClear (env );
249250 for (j = i - 1 ; j >= 0 ; j -- ) {
250251 utf_str = (* env )-> GetObjectArrayElement (env , nameArray , j );
251252 (* env )-> SetObjectArrayElement (env , nameArray , j , NULL );
@@ -345,8 +346,9 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
345346 unlink (filename );
346347 j2d_ppdClose (ppd );
347348 DPRINTF ("CUPSfuncs::bad alloc new array\n" , "" )
348- (* env )-> ExceptionClear (env );
349- JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
349+ if (!(* env )-> ExceptionCheck (env )) {
350+ JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
351+ }
350352 return NULL ;
351353 }
352354
@@ -357,7 +359,9 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
357359 unlink (filename );
358360 j2d_ppdClose (ppd );
359361 DPRINTF ("CUPSfuncs::bad alloc new string ->text\n" , "" )
360- JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
362+ if (!(* env )-> ExceptionCheck (env )) {
363+ JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
364+ }
361365 return NULL ;
362366 }
363367 (* env )-> SetObjectArrayElement (env , nameArray , i * 2 , utf_str );
@@ -367,7 +371,9 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
367371 unlink (filename );
368372 j2d_ppdClose (ppd );
369373 DPRINTF ("CUPSfuncs::bad alloc new string ->choice\n" , "" )
370- JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
374+ if (!(* env )-> ExceptionCheck (env )) {
375+ JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
376+ }
371377 return NULL ;
372378 }
373379 (* env )-> SetObjectArrayElement (env , nameArray , i * 2 + 1 , utf_str );
@@ -381,7 +387,9 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
381387 unlink (filename );
382388 j2d_ppdClose (ppd );
383389 DPRINTF ("CUPSfuncs::bad alloc new string text\n" , "" )
384- JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
390+ if (!(* env )-> ExceptionCheck (env )) {
391+ JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
392+ }
385393 return NULL ;
386394 }
387395 (* env )-> SetObjectArrayElement (env , nameArray ,
@@ -392,7 +400,9 @@ Java_sun_print_CUPSPrinter_getMedia(JNIEnv *env,
392400 unlink (filename );
393401 j2d_ppdClose (ppd );
394402 DPRINTF ("CUPSfuncs::bad alloc new string choice\n" , "" )
395- JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
403+ if (!(* env )-> ExceptionCheck (env )) {
404+ JNU_ThrowOutOfMemoryError (env , "OutOfMemoryError" );
405+ }
396406 return NULL ;
397407 }
398408 (* env )-> SetObjectArrayElement (env , nameArray ,
0 commit comments