> Every time an exception object is created, the constructor calls > `fillInStackTrace()`, which has to walk the call stack to record every > frame. This is expensive, and it's also unnecessary if the exception is > never thrown. There are a few instances in various parts of the JDK > libraries where we create an exception in the dominator block but don't > always throw it. This patch fixes those cases so that if the exception > is not going to be thrown, it is never created in the first place. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Ashay Rane has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Address PR comments - Merge branch 'main' into JDK-8386509-localized-exceptions - Only create exception objects if we're going to throw them Every time an exception object is created, the constructor calls `fillInStackTrace()`, which has to walk the call stack to record every frame. This is expensive, and it's also unnecessary if the exception is never thrown. There are a few instances in various parts of the JDK libraries where we create an exception in the dominator block but don't always throw it. This patch fixes those cases so that if the exception is not going to be thrown, it is never created in the first place. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/31487/files - new: https://git.openjdk.org/jdk/pull/31487/files/1e39b23e..bfdc49e7 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=31487&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31487&range=00-01 Stats: 343 lines in 32 files changed: 154 ins; 87 del; 102 mod Patch: https://git.openjdk.org/jdk/pull/31487.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/31487/head:pull/31487 PR: https://git.openjdk.org/jdk/pull/31487
