@Override public boolean isValid( ObjectSelection objectSelection ) { try { Object checkedObject = roleClass.equals( ObjectSelection.class ) ? objectSelection : objectSelection.get( roleClass ); return constraint.isValid( annotation, checkedObject ); } catch( IllegalArgumentException e ) { return false; } catch( Throwable e ) { logger.warn( "Could not check constraint " + constraint.getClass().getName(), e ); return false; } } }