Skip to content

Commit

Permalink
0.24.2
Browse files Browse the repository at this point in the history
- Fix deserialization of infinity.
  • Loading branch information
Aaron committed Mar 5, 2021
1 parent b36c7b3 commit fb4834d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ subprojects {
apply plugin: 'java-library'
apply plugin: 'maven'

version = '0.24.1'
version = '0.24.2'
sourceCompatibility = 1.7
targetCompatibility = 1.7

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
package org.dsa.iot.dslink.serializer;

import java.util.*;
import org.dsa.iot.dslink.node.*;
import org.dsa.iot.dslink.node.value.*;
import org.dsa.iot.dslink.util.json.*;
import org.dsa.iot.dslink.node.Node;
import org.dsa.iot.dslink.node.NodeManager;
import org.dsa.iot.dslink.node.Writable;
import org.dsa.iot.dslink.node.value.Value;
import org.dsa.iot.dslink.node.value.ValueType;
import org.dsa.iot.dslink.node.value.ValueUtils;
import org.dsa.iot.dslink.util.json.JsonObject;

import java.util.Map;

/**
* Deserializes a JSON file into a node manager
Expand All @@ -20,7 +25,7 @@ public Deserializer(NodeManager nodeManager) {
}

public Deserializer(SerializationManager serializationManager,
NodeManager nodeManager) {
NodeManager nodeManager) {
this.serializationManager = serializationManager;
this.nodeManager = nodeManager;
}
Expand Down Expand Up @@ -72,9 +77,25 @@ private void deserializeNode(Node node, JsonObject map) {
Value val = ValueUtils.toValue(value);
if (t != null && val != null
&& val.getType().compare(ValueType.STRING)
&& t.compare(ValueType.NUMBER)
&& "NaN".equals(val.getString())) {
node.setValue(new Value(Float.NaN));
&& t.compare(ValueType.NUMBER)) {
String str = val.getString();
if ((str == null) || str.isEmpty()) {
node.setValue(null);
} else {
switch (str) {
case "NaN":
node.setValue(new Value(Float.NaN));
break;
case "Infinity":
node.setValue(new Value(Float.POSITIVE_INFINITY));
break;
case "-Infinity":
node.setValue(new Value(Float.NEGATIVE_INFINITY));
break;
default:
node.setValue(null);
}
}
} else {
node.setValue(val);
}
Expand Down

0 comments on commit fb4834d

Please sign in to comment.