Skip to content

Commit 6fe4fd8

Browse files
committed
[Java] Names should be checked with consideration to group nesting. Issue aeron-io#470.
1 parent a74a123 commit 6fe4fd8

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/xml/Message.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ public class Message
5656
private final String semanticType;
5757
private final int computedBlockLength;
5858
private final Map<String, Type> typeByNameMap;
59-
private final ObjectHashSet<String> names = new ObjectHashSet<>();
6059

6160
/**
6261
* Construct a new message from XML Schema.
@@ -169,6 +168,7 @@ private List<Field> parseFieldsAndGroups(final Node node) throws XPathExpression
169168
final NodeList list = (NodeList)xPath.compile(FIELD_OR_GROUP_OR_DATA_EXPR).evaluate(node, NODESET);
170169
boolean groupEncountered = false, dataEncountered = false;
171170

171+
final ObjectHashSet<String> distinctNames = new ObjectHashSet<>();
172172
final List<Field> fieldList = new ArrayList<>();
173173

174174
for (int i = 0, size = list.getLength(); i < size; i++)
@@ -206,7 +206,7 @@ private List<Field> parseFieldsAndGroups(final Node node) throws XPathExpression
206206
throw new IllegalStateException("Unknown node name: " + nodeName);
207207
}
208208

209-
if (!names.add(field.name()))
209+
if (!distinctNames.add(field.name()))
210210
{
211211
handleError(node, "duplicate name found: " + field.name());
212212
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/xml/XmlSchemaParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ public static Map<Long, Message> findMessages(
162162
final Document document, final XPath xPath, final Map<String, Type> typeByNameMap) throws Exception
163163
{
164164
final Map<Long, Message> messageByIdMap = new HashMap<>();
165-
final ObjectHashSet<String> names = new ObjectHashSet<>();
165+
final ObjectHashSet<String> distinctNames = new ObjectHashSet<>();
166166

167167
forEach((NodeList)xPath.compile(MESSAGE_XPATH_EXPR).evaluate(document, XPathConstants.NODESET),
168-
(node) -> addMessageWithIdCheck(names, messageByIdMap, new Message(node, typeByNameMap), node));
168+
(node) -> addMessageWithIdCheck(distinctNames, messageByIdMap, new Message(node, typeByNameMap), node));
169169

170170
return messageByIdMap;
171171
}
@@ -337,7 +337,7 @@ private static void addTypeWithNameCheck(final Map<String, Type> typeByNameMap,
337337
}
338338

339339
private static void addMessageWithIdCheck(
340-
final ObjectHashSet<String> names,
340+
final ObjectHashSet<String> distinctNames,
341341
final Map<Long, Message> messageByIdMap,
342342
final Message message,
343343
final Node node)
@@ -347,7 +347,7 @@ private static void addMessageWithIdCheck(
347347
handleError(node, "message template id already exists: " + message.id());
348348
}
349349

350-
if (!names.add(message.name()))
350+
if (!distinctNames.add(message.name()))
351351
{
352352
handleError(node, "message name already exists: " + message.name());
353353
}

0 commit comments

Comments
 (0)