/** * Converts a ForeignException to an array of bytes. * @param source the name of the external exception source * @param t the "local" external exception (local) * @return protobuf serialized version of ForeignException */ public static byte[] serialize(String source, Throwable t) { GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder(); gemBuilder.setClassName(t.getClass().getName()); if (t.getMessage() != null) { gemBuilder.setMessage(t.getMessage()); } // set the stack trace, if there is one List<StackTraceElementMessage> stack = ForeignException.toStackTraceElementMessages(t.getStackTrace()); if (stack != null) { gemBuilder.addAllTrace(stack); } GenericExceptionMessage payload = gemBuilder.build(); ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder(); exception.setGenericException(payload).setSource(source); ForeignExceptionMessage eem = exception.build(); return eem.toByteArray(); }
/** * Converts a ForeignException to an array of bytes. * @param source the name of the external exception source * @param t the "local" external exception (local) * @return protobuf serialized version of ForeignException */ public static byte[] serialize(String source, Throwable t) { GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder(); gemBuilder.setClassName(t.getClass().getName()); if (t.getMessage() != null) { gemBuilder.setMessage(t.getMessage()); } // set the stack trace, if there is one List<StackTraceElementMessage> stack = ForeignException.toStackTraceElementMessages(t.getStackTrace()); if (stack != null) { gemBuilder.addAllTrace(stack); } GenericExceptionMessage payload = gemBuilder.build(); ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder(); exception.setGenericException(payload).setSource(source); ForeignExceptionMessage eem = exception.build(); return eem.toByteArray(); }
/** * Converts a ForeignException to an array of bytes. * @param source the name of the external exception source * @param t the "local" external exception (local) * @return protobuf serialized version of ForeignException */ public static byte[] serialize(String source, Throwable t) { GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder(); gemBuilder.setClassName(t.getClass().getName()); if (t.getMessage() != null) { gemBuilder.setMessage(t.getMessage()); } // set the stack trace, if there is one List<StackTraceElementMessage> stack = ForeignException.toStackTraceElementMessages(t.getStackTrace()); if (stack != null) { gemBuilder.addAllTrace(stack); } GenericExceptionMessage payload = gemBuilder.build(); ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder(); exception.setGenericException(payload).setSource(source); ForeignExceptionMessage eem = exception.build(); return eem.toByteArray(); }