Deserialization fail

Hello!
Iam start my process from another web app by message like this:

  VariableValueDto variableValueDto = new VariableValueDto();
        variableValueDto.value(fieldsStringJson);
        variableValueDto.setType("Object");
        variableValueDto.setValueInfo(Map.of("objectTypeName", "java.util.ArrayList<com.my.dto.FieldDto>",
                "serializationDataFormat", "application/json"));
        startMessageToCamunda.putProcessVariablesItem("body", variableValueDto);

And In process I parse response:

 ArrayList<FieldDto> filledFields =
                    (ArrayList<FieldDto>) execution.getVariable("body");

But I have:


01-Apr-2022 15:27:10.758 WARNING [http-nio-8080-exec-20] org.camunda.commons.logging.BaseLogger.logWarn ENGINE-REST-HTTP500 java.lang.NoSuchMethodError: 'java.lang.Object org.camunda.spin.spi.DataFormatMapper.mapInternalToJava(java.lang.Object, java.lang.String, org.camunda.spin.DeserializationTypeValidator)'
	at org.camunda.spin.plugin.impl.SpinObjectValueSerializer.deserializeFromByteArray(SpinObjectValueSerializer.java:101)
	at org.camunda.bpm.engine.impl.variable.serializer.AbstractObjectValueSerializer.deserializeFromByteArray(AbstractObjectValueSerializer.java:113)
	at org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer.readValue(AbstractSerializableValueSerializer.java:83)
	at org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer.readValue(AbstractSerializableValueSerializer.java:31)
	at org.camunda.bpm.engine.impl.persistence.entity.util.TypedValueField.getTypedValue(TypedValueField.java:96)
	at org.camunda.bpm.engine.impl.persistence.entity.VariableInstanceEntity.getTypedValue(VariableInstanceEntity.java:269)
	at org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope.getValueFromVariableInstance(AbstractVariableScope.java:146)
	at org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope.getVariable(AbstractVariableScope.java:133)
	at org.camunda.bpm.engine.impl.core.variable.scope.AbstractVariableScope.getVariable(AbstractVariableScope.java:129)

All my jar`s in tomcat folder /lib have different version duplicate.
Like this:

camunda-engine-plugin-spin-7.11.0.jar
camunda-engine-plugin-spin-7.12.0.jar
camunda-spin-dataformat-all-1.6.7.jar
camunda-spin-dataformat-all-1.7.4.jar
etc

Classloader load something from 7.11 and something from 7.12.
My solution is delete all 7.11
keep your folder /lib clean :slight_smile:

1 Like

Thanks @Vasily - Good advice for everyone there :slight_smile: