[ https://issues.apache.org/jira/browse/YARN-3770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lavkesh Lahngir updated YARN-3770: ---------------------------------- Description: IN SerializedExceptionPBImpl deserialize() method {code} Class classType = null; if (YarnException.class.isAssignableFrom(realClass)) { classType = YarnException.class; } else if (IOException.class.isAssignableFrom(realClass)) { classType = IOException.class; } else if (RuntimeException.class.isAssignableFrom(realClass)) { classType = RuntimeException.class; } else { classType = Exception.class; } return instantiateException(realClass.asSubclass(classType), getMessage(), cause == null ? null : cause.deSerialize()); } {code} if realClass is a subclass of java.lang.Error deSerialize() throws ClassCastException. in the last else statement classType should be equal to Trowable.class instead of Exception.class. was: IN SerializedExceptionPBImpl {code} Class classType = null; if (YarnException.class.isAssignableFrom(realClass)) { classType = YarnException.class; } else if (IOException.class.isAssignableFrom(realClass)) { classType = IOException.class; } else if (RuntimeException.class.isAssignableFrom(realClass)) { classType = RuntimeException.class; } else { classType = Exception.class; } return instantiateException(realClass.asSubclass(classType), getMessage(), cause == null ? null : cause.deSerialize()); } {code} if realClass is a subclass of java.lang.Error deSerialize() throws ClassCastException. in the last else statement classType should be equal to Trowable.class instead of Exception.class. > SerializedException should also handle java.lang.Error > ------------------------------------------------------- > > Key: YARN-3770 > URL: https://issues.apache.org/jira/browse/YARN-3770 > Project: Hadoop YARN > Issue Type: Bug > Reporter: Lavkesh Lahngir > Assignee: Lavkesh Lahngir > > IN SerializedExceptionPBImpl deserialize() method > {code} > Class classType = null; > if (YarnException.class.isAssignableFrom(realClass)) { > classType = YarnException.class; > } else if (IOException.class.isAssignableFrom(realClass)) { > classType = IOException.class; > } else if (RuntimeException.class.isAssignableFrom(realClass)) { > classType = RuntimeException.class; > } else { > classType = Exception.class; > } > return instantiateException(realClass.asSubclass(classType), getMessage(), > cause == null ? null : cause.deSerialize()); > } > {code} > if realClass is a subclass of java.lang.Error deSerialize() throws > ClassCastException. > in the last else statement classType should be equal to Trowable.class > instead of Exception.class. -- This message was sent by Atlassian JIRA (v6.3.4#6332)