private static String serialize(final QueryParameter paramMetadata, final Object fieldValue, final String fieldName) {
        String paramValue;
        try {
            paramValue = paramMetadata.serializer().newInstance().handle(fieldValue);
        } catch (final InstantiationException e) {
            LOGGER.error("Failure while serializing field {}", new Object[] { fieldName, e });
            paramValue = new ToStringSerializer().handle(fieldValue);
        } catch (final IllegalAccessException e) {
            LOGGER.error("Failure while serializing field {}", new Object[] { fieldName, e });
            paramValue = new ToStringSerializer().handle(fieldValue);
        }
        return paramValue;
    }
private static String serialize ( final QueryParameter paramMetadata , final Object fieldValue , final String fieldName ) { String paramValue ; try { paramValue = paramMetadata . serializer ( ) . newInstance ( ) . handle ( fieldValue ) ; } catch ( final InstantiationException e ) { LOGGER . error ( "Failure while serializing field {}" , new Object [ ] { fieldName , e } ) ; paramValue = new ToStringSerializer ( ) . handle ( fieldValue ) ; } catch ( final IllegalAccessException e ) { LOGGER . error ( "Failure while serializing field {}" , new Object [ ] { fieldName , e } ) ; paramValue = new ToStringSerializer ( ) . handle ( fieldValue ) ; } return paramValue ; }
Serializes the field value regardless of reflection errors. Fallback to the {@link ToStringSerializer}.

@param paramMetadata
the query parameter annotation
@param fieldValue
the field value
@param fieldName
the field name (for logging purposes only)
@return the serialized value
@throws UnsupportedEncodingException
UTF-8 encoding issue