public Object getValue(ValueFields valueFields) { Object cachedObject = valueFields.getCachedValue(); if (cachedObject != null) { return cachedObject; } byte[] bytes = (byte[]) super.getValue(valueFields); if (bytes != null) { Object deserializedObject = deserialize(bytes, valueFields); valueFields.setCachedValue(deserializedObject); if (trackDeserializedObjects && valueFields instanceof VariableInstanceEntity) { Context.getCommandContext().addCloseListener(new VerifyDeserializedObjectCommandContextCloseListener( new DeserializedObject(this, valueFields.getCachedValue(), bytes, (VariableInstanceEntity)valueFields))); } return deserializedObject; } return null; // byte array is null }
public Object getValue(ValueFields valueFields) { Object cachedObject = valueFields.getCachedValue(); if (cachedObject!=null) { return cachedObject; } byte[] bytes = (byte[]) super.getValue(valueFields); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); Object deserializedObject; try { ObjectInputStream ois = createObjectInputStream(bais); deserializedObject = ois.readObject(); valueFields.setCachedValue(deserializedObject); if (valueFields instanceof VariableInstanceEntity) { Context .getCommandContext() .getDbSqlSession() .addDeserializedObject(deserializedObject, bytes, (VariableInstanceEntity) valueFields); } } catch (Exception e) { throw new ActivitiException("Couldn't deserialize object in variable '"+valueFields.getName()+"'", e); } finally { IoUtil.closeSilently(bais); } return deserializedObject; }
return cachedObject; byte[] bytes = (byte[]) new ByteArrayType().getValue(valueFields); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); Object deserializedObject;
public Object getValue(ValueFields valueFields) { Object cachedObject = valueFields.getCachedValue(); if (cachedObject != null) { return cachedObject; } byte[] bytes = (byte[]) super.getValue(valueFields); if (bytes != null) { Object deserializedObject = deserialize(bytes, valueFields); valueFields.setCachedValue(deserializedObject); if (trackDeserializedObjects && valueFields instanceof VariableInstanceEntity) { Context.getCommandContext().addCloseListener(new VerifyDeserializedObjectCommandContextCloseListener( new DeserializedObject(this, valueFields.getCachedValue(), bytes, (VariableInstanceEntity)valueFields))); } return deserializedObject; } return null; // byte array is null }