class JSExceptionWrapperMapper implements ExceptionMapper<JSExceptionWrapper> {

    private Exception getRootException(JSExceptionWrapper exceptionWrapper) {
        Exception originalException = exceptionWrapper.getOriginalException();

        if (originalException == null) return exceptionWrapper;

        if (originalException instanceof JSExceptionWrapper) {
            return getRootException((JSExceptionWrapper) originalException);
        }
        if (originalException instanceof CacheDatasetException) {
             return (Exception) ExceptionUtils.getRootCause(originalException);
        }
        return originalException;
    }

}