diff --git a/asdf-core/src/main/java/org/asdfformat/asdf/node/impl/NumberAsdfNode.java b/asdf-core/src/main/java/org/asdfformat/asdf/node/impl/NumberAsdfNode.java index a920b49..4eef281 100644 --- a/asdf-core/src/main/java/org/asdfformat/asdf/node/impl/NumberAsdfNode.java +++ b/asdf-core/src/main/java/org/asdfformat/asdf/node/impl/NumberAsdfNode.java @@ -131,8 +131,10 @@ public float asFloat() { public int asInt() { if (value instanceof Byte || value instanceof Short || value instanceof Integer) { return value.intValue(); + } else if (value instanceof Long && (long) value >= Integer.MIN_VALUE && (long) value <= Integer.MAX_VALUE) { + return value.intValue(); } else { - throw new IllegalStateException("Node cannot be represented as long"); + throw new IllegalStateException("Node cannot be represented as int"); } }