From 1bac710427879c6c39a43dbc73796b66621296d5 Mon Sep 17 00:00:00 2001 From: Simon Barner <barner@fortiss.org> Date: Wed, 8 May 2019 11:13:39 +0200 Subject: [PATCH] setTableItemHeight(): Avoid using deprecated method isAccessible() * AccessibleObject::isAccessible() is deprecated for Java 9 and above * Use AccessibleObject::canAccess(Object) instead * Log a warning when the security manager denies to enable access to Table::setItemHeight() * Log an error when an error occurs when trying to set the table height Issue-Ref: 3696 Issue-Url: https://af3-developer.fortiss.org/issues/3696 Signed-off-by: Simon Barner <barner@fortiss.org> --- .../base/ui/annotation/view/generic/.ratings | 2 +- .../view/generic/GenericAnnotationView.java | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings index 220632fe4..6b54f907a 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/.ratings @@ -1,2 +1,2 @@ ColumnHandle.java 8fc5f04cbb0127e5df8c7a9e3b2620502bf93716 GREEN -GenericAnnotationView.java 494cbcade7fd5d66b9629b86549eb25d4d4c93dd YELLOW +GenericAnnotationView.java 6d5569d9a346d5fd60d28a1c60baa9963b5a4010 YELLOW diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java index 494cbcade..6d5569d9a 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/view/generic/GenericAnnotationView.java @@ -17,6 +17,8 @@ package org.fortiss.tooling.base.ui.annotation.view.generic; import static org.fortiss.tooling.base.ui.annotation.editingsupport.EditingSupportFactory.createEditingSupport; import static org.fortiss.tooling.base.ui.annotation.labelprovider.LabelProviderFactory.createLabelProvider; +import static org.fortiss.tooling.kernel.utils.LoggingUtils.error; +import static org.fortiss.tooling.kernel.utils.LoggingUtils.warning; import java.lang.reflect.Method; import java.util.Collection; @@ -70,6 +72,7 @@ import org.fortiss.tooling.base.annotation.valueprovider.IAnnotationValueProvide import org.fortiss.tooling.base.annotation.valueprovider.IAnnotationValueProvider.AnnotationActionParameters; import org.fortiss.tooling.base.model.element.IAnnotatedSpecification; import org.fortiss.tooling.base.model.element.IModelElement; +import org.fortiss.tooling.base.ui.ToolingBaseUIActivator; import org.fortiss.tooling.base.ui.annotation.editingsupport.EditingSupportFactory; import org.fortiss.tooling.base.ui.annotation.editingsupport.ElementCommentEditingSupport; import org.fortiss.tooling.base.ui.annotation.editingsupport.ElementNameEditingSupport; @@ -297,13 +300,17 @@ public class GenericAnnotationView extends AnnotationViewPartBase { try { Method method = table.getClass().getDeclaredMethod("setItemHeight", int.class); if(method != null) { - boolean accessible = method.isAccessible(); - method.setAccessible(true); - method.invoke(table, height); - method.setAccessible(accessible); + boolean accessible = method.canAccess(table); + if(method.trySetAccessible()) { + method.invoke(table, height); + method.setAccessible(accessible); + } else { + warning(ToolingBaseUIActivator.getDefault(), + "Could not set annotation table height."); + } } } catch(Exception e) { - return; + error(ToolingBaseUIActivator.getDefault(), "Failed to set annotation table height.", e); } } -- GitLab