コード例 #1
0
 public override SerializedException GetCause()
 {
     YarnProtos.SerializedExceptionProtoOrBuilder p = viaProto ? proto : builder;
     if (p.HasCause())
     {
         return(new Org.Apache.Hadoop.Yarn.Api.Records.Impl.PB.SerializedExceptionPBImpl(p
                                                                                         .GetCause()));
     }
     else
     {
         return(null);
     }
 }
コード例 #2
0
        public override Exception DeSerialize()
        {
            SerializedException cause = GetCause();

            YarnProtos.SerializedExceptionProtoOrBuilder p = viaProto ? proto : builder;
            Type realClass = null;

            try
            {
                realClass = Sharpen.Runtime.GetType(p.GetClassName());
            }
            catch (TypeLoadException e)
            {
                throw new YarnRuntimeException(e);
            }
            Type classType = null;

            if (typeof(YarnException).IsAssignableFrom(realClass))
            {
                classType = typeof(YarnException);
            }
            else
            {
                if (typeof(IOException).IsAssignableFrom(realClass))
                {
                    classType = typeof(IOException);
                }
                else
                {
                    if (typeof(RuntimeException).IsAssignableFrom(realClass))
                    {
                        classType = typeof(RuntimeException);
                    }
                    else
                    {
                        classType = typeof(Exception);
                    }
                }
            }
            return(InstantiateException(realClass.AsSubclass(classType), GetMessage(), cause
                                        == null ? null : cause.DeSerialize()));
        }
コード例 #3
0
 public override string GetRemoteTrace()
 {
     YarnProtos.SerializedExceptionProtoOrBuilder p = viaProto ? proto : builder;
     return(p.GetTrace());
 }