RFR: 8255449: Improve the exception message of MethodHandles::permuteArguments

Aleksey Shipilev shade at openjdk.java.net
Wed Oct 28 09:23:17 UTC 2020


On Tue, 27 Oct 2020 12:43:47 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

> Hi,
> 
> Currently, if MethodHandles::permuteArguments is used with a reorder array that is the wrong size, or one of the indexes in it is out of bounds of the new type, we simply get the exception message:
> 
>     bad reorder array [...]
> 
> I think we can improve the exception message by splitting these two error cases, and saying in the message exactly what went wrong.
> 
> permuteArguments is a tricky API, so improving the error message here should help to improve developer productivity.
> 
> This PR proposes splits the error message into e.g.:
> 
>     old type parameter count and reorder array length do not match: (int,int,String)int, [0, 0]
> 
> For an incorrect reorder array length, and:
> 
>     index is out of bounds for new type: 2, (int,String)int
> 
> For an out of bounds index.
> 
> Thanks,
> Jorn

This looks okay to me. Someone from core-libs should take a look as well.

As the follow-up, maybe reconcile that method returns normally only with `true`, and throws exceptions otherwise. There are some uses like `assert(permuteArgumentChecks(...))` that apparently depend on this, how necessary are those?

-------------

PR: https://git.openjdk.java.net/jdk/pull/878


More information about the core-libs-dev mailing list