Avoid NPE when patching against a server with invalid models.

Now throw a InvalidClassException so that it's explicitly recorded (ALF-20086)


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@55730 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2013-09-20 10:43:57 +00:00
parent 78697c323d
commit 2aa82db35c

View File

@@ -44,6 +44,7 @@ import org.alfresco.service.cmr.dictionary.ChildAssociationDefinition;
import org.alfresco.service.cmr.dictionary.ClassDefinition; import org.alfresco.service.cmr.dictionary.ClassDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition; import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.InvalidClassException;
import org.alfresco.service.cmr.dictionary.TypeDefinition; import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.ContentData;
@@ -1011,6 +1012,10 @@ public class ImporterComponent implements ImporterService
for (QName parentAspect : parentAspects) for (QName parentAspect : parentAspects)
{ {
classDef = dictionaryService.getClass(parentAspect); classDef = dictionaryService.getClass(parentAspect);
if (classDef == null)
{
throw new InvalidClassException("Failed import for context '" + context.getParentContext() + "'. Unknown aspect: ", parentAspect);
}
childAssocDefs = classDef.getChildAssociations(); childAssocDefs = classDef.getChildAssociations();
for (ChildAssociationDefinition childAssocDef : childAssocDefs.values()) for (ChildAssociationDefinition childAssocDef : childAssocDefs.values())
{ {