Subclasses of org.apache.poi.hssf.record.Record (NumberRecord, LSSTRecord, etc) return a short for getRow() and getColumn(). Excel (2002) can handle 65535 rows. D.
wow...thats like....brief. I totally don't understand it at all.
Ok, i'll try again. when dealing with large spreadsheets (> 32767 rows/columns) getRow() and getColumn() stop being useful after row/column 32767 as they return a short (- 2^15 -> 2^15-1), so the value wraps around. 32766, 32767, -32768, -32767, ... It's an inconvenience having to check this and unsign the short manually.
I agree this is a bug. It is not a good idea to use a short to represent an unsigned 16-bit value (which Java lacks). Explicit bounds checking should be done to enforce a range of values instead. There is also no performance benefit to using anything smaller than an int--at the JVM level it is actually more expensive to deal with shorts.
Fixed in HEAD.