question: private void addMissingApplicationTypes ( ) throws UpgradeException { for ( final Node typeNode : missingApplicationTypes ) { final Map < String , Set < String > > keyValueMap = parseAttributeValuePairTags ( typeNode ) ; final String name = getNodeAttributeValue ( typeNode , NAME ) ; UpgradeProgress . reportStart ( AUDIT_NEW_TYPE_START , name ) ; keyValueMap . put ( NAME , Collections . singleton ( name ) ) ; try { DEBUG . message ( "Saving new entitlement application type: " + name ) ; entitlementService . storeApplicationType ( createApplicationType ( name , keyValueMap ) ) ; UpgradeProgress . reportEnd ( AUDIT_UPGRADE_SUCCESS ) ; } catch ( EntitlementException eE ) { UpgradeProgress . reportEnd ( AUDIT_UPGRADE_FAIL ) ; throw new UpgradeException ( eE ) ; } catch ( InstantiationException ie ) { UpgradeProgress . reportEnd ( AUDIT_UPGRADE_FAIL ) ; throw new UpgradeException ( ie ) ; } catch ( IllegalAccessException iae ) { UpgradeProgress . reportEnd ( AUDIT_UPGRADE_FAIL ) ; throw new UpgradeException ( iae ) ; } } }
target:  Add missing application types.