JDK-8157141 : Fix for JDK-8031290 is unnecessarily fragile
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Not an Issue
  • OS: solaris_12
  • CPU: sparc
  • Submitted: 2016-05-17
  • Updated: 2017-03-28
  • Resolved: 2016-10-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Resolved 9Fixed
Related Reports
Blocks :  
Blocks :  
Relates :  
Relates :  
Description
The fix for JDK-8031290 is unnecessarily fragile - it contains an assert that checks the number of words of data that getisax() can return. If there are additional capability bits returned by getisax() that the JVM doesn't know about then by definition it can't use them anyway.  Printing a warning for debug builds might be OK, but the current assert() seems to be enabled in production builds. The assert should be removed.
Comments
Backport created automatically due to "Fixversion" 10. See backport for changeset details
18-10-2016

Touches the same areas of code as JDK-8164002, so is a prerequisite
11-10-2016

Many of the conditional #defines of the bitmasks for the hardware capability bits can be removed as they are always present from Solaris 11.1 onwards. All mention of AV_SPARC_FMAU and associated code should also be removed - this was originally proposed to support the cancelled ROCK processor and as far as I can tell it only ever existed in preliminary engineering documentation and never actually appeared in the hardware capabilities header file.
23-09-2016

Note that assert() statements are not executed in product builds.
22-09-2016

In addition there's code that checks if getisax() is present. getisax() was delivered in Solaris 10 so the check is unnecessary and can be removed as all versions of Solaris supported by Java9 will have it.
21-09-2016

Oops - cut_paste error, should have been JDK-8031290. Corrected.
17-05-2016

Are you sure JDK-8019324 is the right reference?
17-05-2016