amatiushkin commented on a change in pull request #1485:
URL: https://github.com/apache/tinkerpop/pull/1485#discussion_r727718369
##########
File path:
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLReader.java
##########
@@ -138,9 +143,11 @@ public void readGraph(final InputStream graphInputStream,
final Graph graphToWri
case GraphMLTokens.DATA:
final String key = reader.getAttributeValue(null,
GraphMLTokens.KEY);
final String dataAttributeName = keyIdMap.get(key);
+ final String defaultValue = defaultValues.get(key);
if (dataAttributeName != null) {
- final String value = reader.getElementText();
+ String elementValue = reader.getElementText();
+ final String value = elementValue.length() ==
0 && defaultValue.length() != 0 ? defaultValue : elementValue;
Review comment:
For cases without value like below, there is no `default` value
therefore related events won't be emitted at all.
```xml
<data key="d_n"/>
```
⚠️ My implementation will generate **NPE** in such cases, because of
`defaultValues.get(key)` && `defaultValue.length()`.
I'll add tests for that and fix it.
Btw, another use case with default tag alone without value should give
_empty string_ by default.
```xml
<key id="d_n" for="node" attr.name="modification" attr.type="string">
<default/>
</key>
```
I'll add it as well.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]