commit | 8c80209fd7bda13abb1f804cf676c4af9b2a8568 | [log] [tgz] |
---|---|---|
author | Matthias Villiger <mvi@bsi-software.com> | Fri Oct 28 17:30:44 2016 +0200 |
committer | Matthias Villiger <mvi@bsi-software.com> | Fri Oct 28 17:30:44 2016 +0200 |
tree | 89c1155b636599e2a1261768b86793901dab165e | |
parent | f8dfd5ed45383c47a58747bbbbc25a219b57f304 [diff] |
Handle possible NPE
diff --git a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java index f66a325..161f0f9 100644 --- a/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java +++ b/org.eclipse.scout.sdk.util/src/org/eclipse/scout/sdk/util/internal/typecache/HierarchyCache.java
@@ -128,6 +128,9 @@ @Override public ITypeHierarchy getSupertypeHierarchy(IType type) { + if (!TypeUtility.exists(type)) { + return null; + } try { return new TypeHierarchy(type, type.newSupertypeHierarchy(null)); }
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/formdata/CompositeFormDataTypeSourceBuilder.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/formdata/CompositeFormDataTypeSourceBuilder.java index d85431c..5faea82 100644 --- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/formdata/CompositeFormDataTypeSourceBuilder.java +++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/internal/workspace/dto/formdata/CompositeFormDataTypeSourceBuilder.java
@@ -78,7 +78,12 @@ formDataTypeName = Signature.getSignatureSimpleName(formDataTypeSignature); } - IType superType = TypeUtility.getTypeBySignature(fieldAnnotation.getSuperTypeSignature()); + String superTypeSignature = fieldAnnotation.getSuperTypeSignature(); + IType superType = TypeUtility.getTypeBySignature(superTypeSignature); + if (!TypeUtility.exists(superType)) { + ScoutSdk.logWarning("Could not read DTO super type of field '" + formField.getFullyQualifiedName() + "'. '" + superTypeSignature + "' Could not be found. Field will be skipped."); + continue; + } ITypeHierarchy superTypeHierarchy = TypeUtility.getSupertypeHierarchy(superType); ITypeSourceBuilder fieldSourceBuilder = null; if (superTypeHierarchy != null && superTypeHierarchy.contains(TypeUtility.getType(IRuntimeClasses.AbstractTableFieldData))) {