RFR: 8264138: Replace uses of Class.newInstance [v2]
Ajit Ghaisas
aghaisas at openjdk.java.net
Thu May 13 10:57:18 UTC 2021
On Wed, 12 May 2021 23:36:01 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> Ajit Ghaisas has updated the pull request incrementally with one additional commit since the last revision:
>>
>> fix apps and unit tests
>
> modules/javafx.controls/src/test/java/test/javafx/scene/control/cell/ParameterisedPrebuiltCellTest.java line 73:
>
>> 71: try {
>> 72: cell = cellClass.getDeclaredConstructor().newInstance();
>> 73: } catch (Exception e) {
>
> This will now catch and ignore runtime exceptions as well, where it previously would cause the test to fail. This could end up missing a real problem. The two additional checked exceptions, along with any runtime exceptions, should cause the test to fail. In fact, I don't know why the existing exceptions are ignored (unless there is a compelling reason to ignore them that I'm not aware of), so probably the best thing to do would be to eliminate the try / catch entirely, and instead add a `throws Exception` to the method declaration.
Removed try/catch block and marked the method with `throws Exception`
> modules/javafx.graphics/src/test/java/test/com/sun/javafx/test/binding/ReflectionHelper.java line 46:
>
>> 44: try {
>> 45: return cls.getDeclaredConstructor().newInstance();
>> 46: } catch (final Exception e) {
>
> This could re-wrap a `RuntimeException` needlessly, but is OK in this case (it's a test and it won't change whether or not it fails). The more equivalent fix would be to either list the checked exception individually, or to add a `catch (RuntimeException)` before the `catch (Exception)` and re-throw the rte without wrapping it.
Avoided the re-wrap of a `RuntimeException` as suggested.
-------------
PR: https://git.openjdk.java.net/jfx/pull/491
More information about the openjfx-dev
mailing list