From f9eafab354e20219d074fd1f1bbbc6943b572292 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Thu, 2 Sep 2021 09:55:53 +0200
Subject: [PATCH] Avoid NPE for DerivedAnnotations not backed by an
 EStructuralFeature

Issue-Ref: 4138
Issue-Url: #4138

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../org/fortiss/tooling/base/annotation/valueprovider/.ratings | 2 +-
 .../annotation/valueprovider/EStructuralFeatureDescriptor.java | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
index a79483b3b..bcf87b5e4 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/.ratings
@@ -1,6 +1,6 @@
 AnnotationInstSpec.java b4f2ed47a8984e751e04049de5bdb3cad2c0a933 GREEN
 DerivedAnnotationValueProviderBase.java afedd21d3469127bbb20adb34c191b5c9c980f6c GREEN
-EStructuralFeatureDescriptor.java 416e3cd900151e538922539b0b466908a1cf4639 GREEN
+EStructuralFeatureDescriptor.java f27e01608d167f4e02bcfe61a8eafa823675fbee YELLOW
 EStructuralFeatureValueProviderBase.java 287facbbce47c16d892bae82a214f64ceeef2263 GREEN
 IAnnotationValueProvider.java 08e0e5f66dc97865e9ac03e1ac646af332845e14 GREEN
 ValueProviderBase.java e4e866840845346ec99a4304048f5327c4890996 GREEN
diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/EStructuralFeatureDescriptor.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/EStructuralFeatureDescriptor.java
index 416e3cd90..f27e01608 100644
--- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/EStructuralFeatureDescriptor.java
+++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/annotation/valueprovider/EStructuralFeatureDescriptor.java
@@ -159,7 +159,8 @@ public class EStructuralFeatureDescriptor {
 	 */
 	public EClassifier getEType(IAnnotatedSpecification specification) {
 		try {
-			return getEStructuralFeature(specification).getEType();
+			EStructuralFeature esf = getEStructuralFeature(specification);
+			return esf != null ? esf.getEType() : null;
 		} catch(Exception e) {
 			return null;
 		}
-- 
GitLab