Merge pull request #75 from Mincol/mapCreation
NegativeArraySizeException during map creation
This commit is contained in:
commit
54807da0f7
1 changed files with 11 additions and 5 deletions
|
@ -29,7 +29,7 @@ public class NodeData extends MapCreatorBase
|
||||||
ilon = (int)dis.readDiffed( 1 );
|
ilon = (int)dis.readDiffed( 1 );
|
||||||
ilat = (int)dis.readDiffed( 2 );
|
ilat = (int)dis.readDiffed( 2 );
|
||||||
int mode = dis.readByte();
|
int mode = dis.readByte();
|
||||||
if ( ( mode & 1 ) != 0 ) { int dlen = dis.readByte(); description = new byte[dlen]; dis.readFully( description ); }
|
if ( ( mode & 1 ) != 0 ) { int dlen = dis.readShort(); description = new byte[dlen]; dis.readFully( description ); }
|
||||||
if ( ( mode & 2 ) != 0 ) selev = dis.readShort();
|
if ( ( mode & 2 ) != 0 ) selev = dis.readShort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 );
|
||||||
int mode = ( description == null ? 0 : 1 ) | ( selev == Short.MIN_VALUE ? 0 : 2 );
|
if (description != null && description.length > Byte.MAX_VALUE) {
|
||||||
dos.writeByte( (byte)mode );
|
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);
|
||||||
if ( ( mode & 1 ) != 0 ) { dos.writeByte( description.length ); dos.write( description ); }
|
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);
|
||||||
if ( ( mode & 2 ) != 0 ) dos.writeShort( selev );
|
dos.writeByte((byte) 0);
|
||||||
|
} else {
|
||||||
|
int mode = (description == null ? 0 : 1 ) | ( selev == Short.MIN_VALUE ? 0 : 2 );
|
||||||
|
dos.writeShort( (byte) mode);
|
||||||
|
if ( ( mode & 1 ) != 0 ) { dos.write( description.length ); dos.write( description ); }
|
||||||
|
if ( ( mode & 2 ) != 0 ) dos.writeShort( selev );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue