e7eb9cf4de
We had several problems with Java Serializatin in the past. At some point in the Java 1.7.x series JDKs where not compatible anymore when java serialization (ObjectStream) was used to exchange objects. In elasticsearch we used this to serialize exceptions across the wire which caused several problems with incompatible JDKs. While causing lot of trouble this essentially prevented users from moving forward and upgrade their JVMs. To prevent these kind of issues this commit removes the dependency on java serialization entirely and bans the usage of ObjectOutputStream and ObjectInputStream entirely. Yet, we can't fully serialize all exception anymore such that this commit is best effort and adds hand written serialization to all elasticsearch exceptions as well to a selected set of JDK and Lucene exceptions. (see StreamOutput#writeThrowable / StreamInput.readThrowable). Stacktraces should be preserved for all exceptions while several names might be replaced with ElasticsearchException if there is no mapping for the given exception. |
||
---|---|---|
.. | ||
forbidden | ||
license-check | ||
pmd | ||
shared-test-resources | ||
site |