Author: jcouteau Date: 2010-12-01 15:37:43 +0100 (Wed, 01 Dec 2010) New Revision: 547 Url: http://nuiton.org/repositories/revision/wikitty/547 Log: Prevent NPE on copyFrom method on DTOs Modified: trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java Modified: trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java =================================================================== --- trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java 2010-11-30 17:22:39 UTC (rev 546) +++ trunk/wikitty-dto/src/main/java/org/nuiton/wikitty/dto/DTOHelper.java 2010-12-01 14:37:43 UTC (rev 547) @@ -55,7 +55,7 @@ public static <E extends BusinessEntity> E fromDto(WikittyProxy proxy, Class<E> clazz, E dto) { - E result = (E)proxy.restore(clazz, dto.getWikittyId()); + E result = proxy.restore(clazz, dto.getWikittyId()); result.copyFrom(dto); return result; Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java =================================================================== --- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java 2010-11-30 17:22:39 UTC (rev 546) +++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyDTOGenerator.java 2010-12-01 14:37:43 UTC (rev 547) @@ -616,11 +616,14 @@ String attributeType = WikittyTransformerUtil.generateResultType(attribute, false); String attributeName = attribute.getName(); String attributeTypeInSetImpl = null; + String attributeTypeInSet = null; String collectionType = WikittyTransformerUtil.getCollectionTypeName(attribute); if (Set.class.getSimpleName().equals(collectionType)) { + attributeTypeInSet = "Set<String>"; attributeTypeInSetImpl = "HashSet<String>"; } if (List.class.getSimpleName().equals(collectionType)) { + attributeTypeInSet = "List<String>"; attributeTypeInSetImpl = "ArrayList<String>"; } @@ -634,7 +637,10 @@ if (WikittyTransformerUtil.isAttributeCollection(attribute)) { methodBody += "" /*{ - set<%=capitalizedAttributeName%>(new <%=attributeTypeInSetImpl%>(sourceCopy.get<%=capitalizedAttributeName%>())); + <%=attributeTypeInSet%> <%=attributeName%> = sourceCopy.get<%=capitalizedAttributeName%>(); + if (<%=attributeName%> != null){ + set<%=capitalizedAttributeName%>(new <%=attributeTypeInSetImpl%>(<%=attributeName%>)); + } }*/; } else { methodBody += ""