In GEOEDE-7090, DSFIDSerializerImpl.invokeFromData() will catch RunTimeException and throw. But convert Exception to be IOException. The idea is to avoid using SerializationException which is in another package.
However, if my fromData() failed with IndexOutOfBoundary exception (which is an RTE), it will be thrown directly instead of treating it in handleException(), thus my serialization exception will never get handled.
The fix is to merge the catch RunTimeException into catch Exception.