Description
The BrokerService has a property called storeOpenWireVersion to set the specified OpenWire version to use for the store.
On start up, KahaDB will first set this value as the OpenWire version used in the index metadata in memory, and then if it detects a different version when reading in an existing index, it will reset the the version to the version that was detected.
The problem is that if a corrupted index is detected during the reading of the index, the metadata is recreated in the catch block but the storeOpenWireVersion that was set on the BrokerService is never copied back to the new Metadata. This happens in the open() method of MessageDatabase.
This causes marshalling errors because the index will now be recreated with the default OpenWire version instead of the actual version that was set on the broker.