-
Bug
-
Resolution: Fixed
-
P2
-
9
-
b96
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8161813 | 8u112 | Andy Herrick | P2 | Resolved | Fixed | b03 |
JDK-8155531 | 8u102 | Andy Herrick | P2 | Resolved | Fixed | b05 |
JDK-8149200 | 8u101 | Andy Herrick | P2 | Resolved | Fixed | b01 |
JDK-8143080 | 8u92 | Andy Herrick | P2 | Closed | Fixed | b01 |
JDK-8148693 | 8u74 | Andy Herrick | P2 | Resolved | Fixed | b31 |
JDK-8155281 | emb-8u101 | Andy Herrick | P2 | Resolved | Fixed | b01 |
Unfortunately, this means that for a few lines of code there is no hard ref to the computed data, and it may be garbage collected (or explicitly cleared.)
Instead CacheEntry.getJarSigningData() should compute the JarSigningData and keep it in a local variable until it can return it (also storing it in the softReference).
This problem is seen intermittently in the CacheJarFileTest unit test.
although there are other failures in this test, the 2 intermittent Errors caused by a null pointer exception in CachedJarFileTest.runEntryGetCertificates() and CachedJarFileTest.runEntryGetCodeSigniers() are caused by this.
The tests loop thu the hundreds of entries in a signed jar, and clear the soft references to them both synchronously and asynchronously, and will get an NPE if the call to JarFileEntry.getCodeSigners() returns null.
I can see this happen about 50% of the time running this test in netbeans, but never with the fix.
The problem is a regression caused by the fix to JDK-8140400
- backported by
-
JDK-8148693 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Resolved
-
-
JDK-8149200 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Resolved
-
-
JDK-8155281 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Resolved
-
-
JDK-8155531 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Resolved
-
-
JDK-8161813 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Resolved
-
-
JDK-8143080 Race Condition can cause CacheEntry.getJarSigningData() to return null.
-
- Closed
-