-
Improvement
-
Resolution: Fixed
-
Minor
Currently it is hard to understand which field has been rejected from serialization in Remoting. You get only stacktraces like this one:
[android-lint] Collecting Android Lint files... ERROR: Build step failed with exception java.lang.SecurityException: Rejected: com.google.common.collect.AbstractMultimap at hudson.remoting.ClassFilter.check(ClassFilter.java:75) at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:129) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2000) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1924) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at hudson.remoting.UserRequest.deserialize(UserRequest.java:277) at hudson.remoting.UserResponse.retrieve(UserRequest.java:310) at hudson.remoting.Channel.call(Channel.java:909) at hudson.FilePath.act(FilePath.java:998)
I propose to...
- If FINE/INFO logger is enabled for the class filter, run deep object analysis and log info about structure and rejected classes
- Since there is no way to hook on Java deserialization, use Reflection for such operation
- Nice2have: Print information about rejected classes into a separate file if workdir is enabled
- is related to
-
JENKINS-49016 Android-lint plugin affected by JEP in 2.102
- Resolved
-
JENKINS-49025 SecurityException: Rejected: java.lang.String$CaseInsensitiveComparator
- Resolved
- links to