=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java 2015-09-24 03:20:17 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/Schema.java 2015-10-08 06:16:29 +0000 @@ -444,15 +444,22 @@ this.propertyMap = propertyMap; } + private Set references; + @JsonProperty @JacksonXmlElementWrapper( localName = "references", namespace = DxfNamespaces.DXF_2_0 ) @JacksonXmlProperty( localName = "reference", namespace = DxfNamespaces.DXF_2_0 ) @SuppressWarnings( "rawtypes" ) public Set getReferences() { - return getProperties().stream() - .filter( p -> p.isCollection() ? PropertyType.REFERENCE == p.getItemPropertyType() : PropertyType.REFERENCE == p.getPropertyType() ) - .map( p -> p.isCollection() ? p.getItemKlass() : p.getKlass() ).collect( Collectors.toSet() ); + if ( references == null ) + { + references = getProperties().stream() + .filter( p -> p.isCollection() ? PropertyType.REFERENCE == p.getItemPropertyType() : PropertyType.REFERENCE == p.getPropertyType() ) + .map( p -> p.isCollection() ? p.getItemKlass() : p.getKlass() ).collect( Collectors.toSet() ); + } + + return references; } public Map getPersistedProperties() @@ -461,7 +468,8 @@ { persistedProperties = new HashMap<>(); - getPropertyMap().entrySet().stream().filter( entry -> entry.getValue().isPersisted() ) + getPropertyMap().entrySet().stream() + .filter( entry -> entry.getValue().isPersisted() ) .forEach( entry -> persistedProperties.put( entry.getKey(), entry.getValue() ) ); } @@ -474,7 +482,8 @@ { nonPersistedProperties = new HashMap<>(); - getPropertyMap().entrySet().stream().filter( entry -> !entry.getValue().isPersisted() ) + getPropertyMap().entrySet().stream() + .filter( entry -> !entry.getValue().isPersisted() ) .forEach( entry -> nonPersistedProperties.put( entry.getKey(), entry.getValue() ) ); } @@ -523,7 +532,8 @@ { List authorityList = Lists.newArrayList(); - authorities.stream().filter( authority -> type.equals( authority.getType() ) ) + authorities.stream() + .filter( authority -> type.equals( authority.getType() ) ) .forEach( authority -> authorityList.addAll( authority.getAuthorities() ) ); authorityMap.put( type, authorityList );