I commented in the jira about using int.
> On Aug 23, 2019, at 9:54 AM, Bruce Schuchardt <bschucha...@pivotal.io> wrote: > > Yeah, that code is confusing. I think the ordinal constants should all be > changed to shorts and the constructor for Version should take a short as > well. I can see why someone creating a new ordinal would be hesitant to do > that - it will need to be tested. > > The on-wire representation of a Version isn't limited to a byte. We use > writeOrdinal() to serialize version ordinals. > > I'll open a JIRA to address this. > > >> On 8/23/19 9:16 AM, Kirk Lund wrote: >> I think they did that because the datatypes in the Version class are too >> small. I'm not sure why bytes and shorts were chosen. >> >> The version constants are defined as bytes: >> >> private static final *byte* GEODE_1_11_0_ORDINAL = 107; >> >> While the ordinal is defined as a short: >> >> private final *short* ordinal; >> >> I'm assuming this was done because Version ends up on the wire. Does it go >> into every message or just handshake/join messages? I suppose we can't >> change these datatypes to integers until Geode 2.0 because they would end >> up being a breaking change. >> >> Maybe we should scan through all serialized datatypes for bytes/shorts that >> are going to run out... >> >> On Fri, Aug 23, 2019 at 9:02 AM Bruce Schuchardt <bschucha...@pivotal.io> >> wrote: >> >>> We've been incrementing the serialization version by 5 for each x.x.0 >>> release but I see that we went from 105 in 1.10.0 to 107 in develop for >>> 1.11.0. That gives us only one opportunity to make a serialization >>> change if we need to release patches for 1.10. I don't think that's >>> safe & we need to bump the ordinal for 1.11.0 to 110. >>> >>>