Add warning if Node Description exceeds max allowed serialization length.

This commit is contained in:
Mincol 2017-03-29 16:42:08 +02:00
parent e48cc1a704
commit 97a0f09064

View file

@ -38,9 +38,15 @@ public class NodeData extends MapCreatorBase
dos.writeDiffed( nid, 0 ); dos.writeDiffed( nid, 0 );
dos.writeDiffed( ilon, 1 ); dos.writeDiffed( ilon, 1 );
dos.writeDiffed( ilat, 2 ); dos.writeDiffed( ilat, 2 );
if (description != null && description.length > Byte.MAX_VALUE) {
System.err.printf("Node id (%s): description length (%d) is longer then maximum allowed (%d). The description will NOT be written.", nid, description.length, Byte.MAX_VALUE);
System.out.printf("Node id (%s): description length (%d) is longer then maximum allowed (%d). The description will NOT be written.", nid, description.length, Byte.MAX_VALUE);
dos.writeByte((byte) 0);
} else {
int mode = (description == null ? 0 : 1) | (selev == Short.MIN_VALUE ? 0 : 2); int mode = (description == null ? 0 : 1) | (selev == Short.MIN_VALUE ? 0 : 2);
dos.writeByte((byte) mode); dos.writeByte((byte) mode);
if ((mode & 1) != 0) { dos.write(description.length); dos.write(description); } if ((mode & 1) != 0) { dos.write(description.length); dos.write(description); }
if ((mode & 2) != 0) dos.writeShort(selev); if ((mode & 2) != 0) dos.writeShort(selev);
} }
} }
}