docs: public IStatus createStatus(int severity, int code, String message, Throwable cause) {
  		String msg = message;
  		if (Strings.isNullOrEmpty(msg)) {
  			msg = cause.getLocalizedMessage();
  			if (Strings.isNullOrEmpty(msg)) {
  				msg = cause.getMessage();
  			}
  			if (Strings.isNullOrEmpty(msg)) {
  				msg = cause.getClass().getSimpleName();
  			}
  		}
  		if (cause != null) {
  			final List<IStatus> childStatuses = new ArrayList<>();
  			final StackTraceElement[] stackTraces = cause.getStackTrace();
  			for (final StackTraceElement stackTrace: stackTraces) {
  				final IStatus status = createStatus(severity, stackTrace.toString());
  				childStatuses.add(status);
  			}
  
  			final IStatus[] children = new IStatus[childStatuses.size()];
  			if (!childStatuses.isEmpty()) {
  				childStatuses.toArray(children);
  			}
  			return new MultiStatus(PLUGIN_ID,
  					code,
  					children,
  					msg, cause);
  		}
  		return new Status(severity, PLUGIN_ID, code, msg, cause);
  	}