[OpenJDK 2D-Dev] RFR: 8172813 test/java/awt/font/JNICheck/JNICheck.sh fails on Linux
Prahalad Kumar Narayanan
prahalad.kumar.narayanan at oracle.com
Wed Jan 18 17:51:31 UTC 2017
The change looks good - Reduces the number of local references held by the JNI function.
Here are some findings :
1. I found additional references that could be released. You can check the severity of the problem and decide to release or skip.
Line: 1129 Concerned Object: cacheDirArray.
I believe the existing code may not create trouble as reference to object is outside the loop.
Line: 1168 and
Line: 1175 Concerned Object: fcCompFontObj
Both these lines, either terminate /or continue the loop without releasing the reference.
Line: 1330 Concerned Object: fcFont
When jstr becomes NULL, for loop is exited with break without releasing the reference
Line: 1364 Concerned Object: fcFontArr
fcFontArr (new object array ) is created in every iteration of the loop.
This could be released in this line alongside release of fcCompFontObj
2. Copyright notice to have 2017 instead of 2016
3. Question: Should we mask the other warning messages with 'grep -v' in JNICheck.sh ?
Have a good day
Date: Tue, 17 Jan 2017 12:29:24 -0800
From: Phil Race <philip.race at oracle.com>
To: Sergey Bylokhov <sergey.bylokhov at oracle.com>
Cc: 2d-dev <2d-dev at openjdk.java.net>
Subject: Re: [OpenJDK 2D-Dev] RFR: 8172813
test/java/awt/font/JNICheck/JNICheck.sh fails on Linux
Message-ID: <65d232e2-47e4-2a78-c454-c144876af564 at oracle.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Both yes and no :-), although I think it is fine to add both.
1140 .. there are no more than 2 cachedirs (1 user + 1 system) so I didn't examine JNI refs in this loop
1166 .. I was not realistically expecting a "NULL" here so ignored it.
Unlike some of the JNI bugs "call while pending exception" type bugs we've fixed these were actual, not hypothetical.
On 01/16/2017 09:07 AM, Sergey Bylokhov wrote:
> Hi, Phil.
> Should we add DeleteLocalRef in fontpath.c at lines 1140 and 1166, or both were skipped intentionally?
>> Bug : https://bugs.openjdk.java.net/browse/JDK-8172813
>> Webrev : http://cr.openjdk.java.net/~prr/8172813/
>> - Clear local refs once we are done with them.
>> - Use grep to filter out from the log unrelated warnings as separately reported here :
More information about the 2d-dev