Example usage for org.springframework.core.serializer.support SerializationFailedException SerializationFailedException

List of usage examples for org.springframework.core.serializer.support SerializationFailedException SerializationFailedException

Introduction

In this page you can find the example usage for org.springframework.core.serializer.support SerializationFailedException SerializationFailedException.

Prototype

public SerializationFailedException(String message, Throwable cause) 

Source Link

Document

Construct a SerializationException with the specified detail message and nested exception.

Usage

From source file:grails.plugin.cache.web.filter.redis.GrailsDeserializingConverter.java

public Object convert(byte[] source) {
    try {/* w  ww .  ja  va  2  s  . c  o  m*/
        return deserializer.deserialize(new ByteArrayInputStream(source));
    } catch (Throwable t) {
        throw new SerializationFailedException("Failed to deserialize payload. "
                + "Is the byte array a result of corresponding serialization for "
                + deserializer.getClass().getSimpleName() + "?", t);
    }
}

From source file:grails.plugin.cache.web.filter.redis.GrailsSerializingConverter.java

/**
 * Serializes the source object and returns the byte array result.
 *///from   w  w  w  . j av a 2s  . c  o  m
public byte[] convert(Object source) {
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream(128);
        serializer.serialize(source, baos);
        return baos.toByteArray();
    } catch (Throwable t) {
        throw new SerializationFailedException(
                "Failed to serialize object using " + serializer.getClass().getSimpleName(), t);
    }
}

From source file:com.flipkart.aesop.serializer.serializers.UserPreferencesInfoSerializer.java

/**
 * Deserializes a UserPreferencesInfo instance from the specified NFDeserializationRecord
 * @see com.netflix.zeno.serializer.NFTypeSerializer#doDeserialize(com.netflix.zeno.serializer.NFDeserializationRecord)
 *///from   w w w. ja v a2  s  .co  m
protected UserPreferencesInfo doDeserialize(NFDeserializationRecord record) {
    String id = deserializePrimitiveString(record, "id");
    String preferences_name = deserializePrimitiveString(record, "preferences_name");
    Map<String, String> valueAsStringMap = deserializeObject(record, "value");
    Map<String, Object> value = new HashMap<String, Object>();
    Iterator<String> iterator = valueAsStringMap.keySet().iterator();
    while (iterator.hasNext()) {
        String key = iterator.next();
        try {
            value.put(key, objectMapper.readValue(valueAsStringMap.get(key), Object.class));
        } catch (Exception e) {
            throw new SerializationFailedException(
                    "Serialization failed for userPreferencesInfo.getValue().get(key). Error is : "
                            + e.getMessage(),
                    e);
        }
    }
    int version = deserializeInteger(record, "version");
    String last_modified = deserializePrimitiveString(record, "last_modified");
    return new UserPreferencesInfo(id, preferences_name, value, version, last_modified);
}

From source file:com.flipkart.aesop.serializer.serializers.UserPreferencesInfoSerializer.java

/**
 * Serializes the specified UserPreferencesInfo object into the specified NFSerializationRecord
 * @see com.netflix.zeno.serializer.NFTypeSerializer#doSerialize(java.lang.Object, com.netflix.zeno.serializer.NFSerializationRecord)
 *//*from  ww  w . ja  v  a2  s .c  o  m*/
public void doSerialize(UserPreferencesInfo userPreferencesInfo, NFSerializationRecord record) {
    serializePrimitive(record, "id", userPreferencesInfo.getId());
    serializePrimitive(record, "preferences_name", userPreferencesInfo.getPreferences_name());
    if (userPreferencesInfo.getValue() != null) {
        Map<String, String> valueAsStringMap = new HashMap<String, String>();
        Iterator<String> iterator = userPreferencesInfo.getValue().keySet().iterator();
        while (iterator.hasNext()) {
            String key = iterator.next();
            try {
                valueAsStringMap.put(key,
                        objectMapper.writer().writeValueAsString(userPreferencesInfo.getValue().get(key)));
            } catch (Exception e) {
                throw new SerializationFailedException(
                        "Serialization failed for userPreferencesInfo.getValue().get(key). Error is : "
                                + e.getMessage(),
                        e);
            }
        }
        serializeObject(record, "value", valueAsStringMap);
    }
    serializePrimitive(record, "version", userPreferencesInfo.getVersion());
    serializePrimitive(record, "last_modified", userPreferencesInfo.getLast_modified());
}

From source file:com.flipkart.aesop.serializer.serializers.UserAddressInfoSerializer.java

/**
 * Serializes the specified UserAddressInfo object into the specified NFSerializationRecord
 * @see com.netflix.zeno.serializer.NFTypeSerializer#doSerialize(java.lang.Object, com.netflix.zeno.serializer.NFSerializationRecord)
 *///  www  . j av a  2 s  . c o m
public void doSerialize(UserAddressInfo userAddressInfo, NFSerializationRecord record) {
    serializePrimitive(record, "id", userAddressInfo.getId());
    serializePrimitive(record, "account_id", userAddressInfo.getAccount_id());
    serializeObject(record, "preferences", userAddressInfo.getPreferences());
    serializePrimitive(record, "first_name", userAddressInfo.getFirst_name());
    serializePrimitive(record, "last_name", userAddressInfo.getLast_name());
    serializePrimitive(record, "address_line1", userAddressInfo.getAddress_line1());
    serializePrimitive(record, "address_line2", userAddressInfo.getAddress_line2());
    serializePrimitive(record, "landmark", userAddressInfo.getLandmark());
    serializePrimitive(record, "city", userAddressInfo.getCity());
    serializePrimitive(record, "state", userAddressInfo.getState());
    serializePrimitive(record, "state_code", userAddressInfo.getState_code());
    serializePrimitive(record, "country", userAddressInfo.getCountry());
    serializePrimitive(record, "pincode", userAddressInfo.getPincode());
    serializePrimitive(record, "phone", userAddressInfo.getPhone());
    serializePrimitive(record, "guest", userAddressInfo.isGuest());
    serializePrimitive(record, "active", userAddressInfo.isActive());
    serializePrimitive(record, "version", userAddressInfo.getVersion());
    serializePrimitive(record, "creation_date", userAddressInfo.getCreation_date());
    serializePrimitive(record, "last_modified", userAddressInfo.getLast_modified());
    serializePrimitive(record, "creating_system", userAddressInfo.getCreating_system());
    if (userAddressInfo.getPreferences() != null) {
        Map<String, String> preferencesAsStringMap = new HashMap<String, String>();
        Iterator<String> iterator = userAddressInfo.getPreferences().keySet().iterator();
        while (iterator.hasNext()) {
            String key = iterator.next();
            try {
                preferencesAsStringMap.put(key,
                        objectMapper.writer().writeValueAsString(userAddressInfo.getPreferences().get(key)));
            } catch (Exception e) {
                throw new SerializationFailedException(
                        "Serialization failed for userAddressInfo.getPreferences().get(key). Error is : "
                                + e.getMessage(),
                        e);
            }
        }
        serializeObject(record, "preferences", preferencesAsStringMap);
    }
}

From source file:com.flipkart.aesop.relay.sample.PersonDiffChangeEventMapper.java

/**
 * Interface method implementation. Returns a List of {@link Person} instances derived from data contained in the specified {@link TypeDiff} containing
 * diff information on {@link UserInfo} objects
 * @see com.flipkart.aesop.serializer.stateengine.DiffChangeEventMapper#getChangeEvents(com.netflix.zeno.diff.TypeDiff)
 *///from ww  w  .j av a 2 s .c  o  m
public List<Person> getChangeEvents(TypeDiff<UserInfo> typeDiff, SerializerFactory serializerFactory) {
    List<Person> personsList = new LinkedList<Person>();
    GenericObjectSerializationFramework genericObjectFramework = new GenericObjectSerializationFramework(
            serializerFactory);
    for (ObjectDiffScore<UserInfo> objectDiff : typeDiff.getDiffObjects()) {
        GenericObject fromGenericObject = genericObjectFramework.serialize(objectDiff.getFrom(),
                this.getNFTypeName());
        GenericObject toGenericObject = genericObjectFramework.serialize(objectDiff.getTo(),
                this.getNFTypeName());
        List<FieldChange> fieldChanges = new LinkedList<FieldChange>();
        for (int i = 0; i < fromGenericObject.getFields().size(); i++) {
            Field fromField = fromGenericObject.getFields().get(i);
            Field toField = toGenericObject.getFields().get(i);
            if (fromField.getValue() == null && toField.getValue() == null) {
                continue;
            }
            try {
                if ((fromField.getValue() == null && toField.getValue() != null)
                        || (toField.getValue() == null && fromField.getValue() != null)
                        || (!fromField.getValue().equals(toField.getValue()))) {
                    // serialize data as JSON if field names are : preferences, addresses or merged_account_ids
                    String fieldFromValue = null;
                    String fieldToValue = null;
                    if (fromField.getFieldName().equals("preferences")) {
                        if (fromField.getValue() != null && toField.getValue() != null) {
                            fieldFromValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getFrom().getPreferences());
                            fieldToValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getTo().getPreferences());
                            if (fieldFromValue.equals(fieldToValue)) {
                                continue;
                            }
                        } else {
                            fieldFromValue = fromField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getFrom().getPreferences());
                            fieldToValue = toField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getTo().getPreferences());
                        }
                    } else if (fromField.getFieldName().equals("addresses")) {
                        if (fromField.getValue() != null && toField.getValue() != null) {
                            fieldFromValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getFrom().getAddresses());
                            fieldToValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getTo().getAddresses());
                            if (fieldFromValue.equals(fieldToValue)) {
                                continue;
                            }
                        } else {
                            fieldFromValue = fromField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getFrom().getAddresses());
                            fieldToValue = toField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getTo().getAddresses());
                        }
                    } else if (fromField.getFieldName().equals("merged_account_ids")) {
                        if (fromField.getValue() != null && toField.getValue() != null) {
                            fieldFromValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getFrom().getMerged_account_ids());
                            fieldToValue = objectMapper.writer()
                                    .writeValueAsString(objectDiff.getTo().getMerged_account_ids());
                            if (fieldFromValue.equals(fieldToValue)) {
                                continue;
                            }
                        } else {
                            fieldFromValue = fromField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getFrom().getMerged_account_ids());
                            fieldToValue = toField.getValue() == null ? "null"
                                    : objectMapper.writer()
                                            .writeValueAsString(objectDiff.getTo().getMerged_account_ids());
                        }
                    } else {
                        fieldFromValue = fromField.getValue() == null ? "null"
                                : fromField.getValue().toString();
                        fieldToValue = toField.getValue() == null ? "null" : toField.getValue().toString();
                    }
                    fieldChanges.add(new FieldChange(fromField.getFieldName(), fieldFromValue, fieldToValue));
                }
            } catch (Exception e) {
                throw new SerializationFailedException(
                        "Error interpreting change from diff : " + e.getMessage(), e);
            }
        }
        personsList.add(new Person(
                Long.valueOf(!NumberUtils.isNumber(objectDiff.getFrom().getPrimary_phone()) ? "0"
                        : objectDiff.getFrom().getPrimary_phone().trim()),
                objectDiff.getFrom().getFirst_name(), objectDiff.getFrom().getLast_name(), 0L, "false",
                fieldChanges));
    }
    return personsList;
}

From source file:org.springframework.cloud.stream.binder.AbstractBinder.java

protected final byte[] serializePayloadIfNecessary(Object originalPayload) {
    if (originalPayload instanceof byte[]) {
        return (byte[]) originalPayload;
    } else {//from  ww  w  .  ja  v a  2 s .c  o  m
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            if (originalPayload instanceof String) {
                return ((String) originalPayload).getBytes("UTF-8");
            }
            this.codec.encode(originalPayload, bos);
            return bos.toByteArray();
        } catch (IOException e) {
            throw new SerializationFailedException(
                    "unable to serialize payload [" + originalPayload.getClass().getName() + "]", e);
        }
    }
}

From source file:org.springframework.cloud.stream.binder.AbstractBinder.java

private Object deserializePayload(byte[] bytes, MimeType contentType) {
    if ("text".equalsIgnoreCase(contentType.getType()) || MimeTypeUtils.APPLICATION_JSON.equals(contentType)) {
        try {//w w  w  .  j a v  a2s .  co m
            return new String(bytes, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            String errorMessage = "unable to deserialize [java.lang.String]. Encoding not supported. "
                    + e.getMessage();
            logger.error(errorMessage);
            throw new SerializationFailedException(errorMessage, e);
        }
    } else {
        String className = JavaClassMimeTypeConversion.classNameFromMimeType(contentType);
        try {
            // Cache types to avoid unnecessary ClassUtils.forName calls.
            Class<?> targetType = this.payloadTypeCache.get(className);
            if (targetType == null) {
                targetType = ClassUtils.forName(className, null);
                this.payloadTypeCache.put(className, targetType);
            }
            return this.codec.decode(bytes, targetType);
        } // catch all exceptions that could occur during de-serialization
        catch (Exception e) {
            String errorMessage = "Unable to deserialize [" + className + "] using the contentType ["
                    + contentType + "] " + e.getMessage();
            logger.error(errorMessage);
            throw new SerializationFailedException(errorMessage, e);
        }
    }
}