On Thu, 16 May 2024 07:11:20 GMT, Per Minborg <pminb...@openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/lang/stable/StableValueImpl.java >> line 139: >> >>> 137: case NON_NULL: { return valueVolatile(); } >>> 138: case ERROR: { throw StableUtil.error(this); } >>> 139: case DUMMY: { throw shouldNotReachHere(); } >> >> Redundant branch? > > The idea here is to have the most likely value in the middle... Not sure if > that motivates the added complexity though. Is there any refernce on how/why the middle entry in a tableswitch instruction is the fastest? >> src/java.base/share/classes/jdk/internal/lang/stable/StableValueImpl.java >> line 236: >> >>> 234: } catch (Throwable t) { >>> 235: putState(ERROR); >>> 236: putMutex(t.getClass()); >> >> Should we cache the exception instance so we can rethrow it in future ERROR >> state `orThrow` calls? > > We considered recording the entire exception instance but for security > reasons, we ended up just recording the type of exception. I will add a > comment explaining this in the code. Thanks for this clarification. Makes sense. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/18794#discussion_r1603149806 PR Review Comment: https://git.openjdk.org/jdk/pull/18794#discussion_r1603150592