You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm running into an issue that's awfully similar to SPR-4826. This is a blocker for my application's new release as well.
My issue is upgrading from spring-webflow 2.0.9.RELEASE to 2.3.4.RELEASE, and my previously existing snapshots can no longer be loaded/deserialized/unmarshalled:
java.io.InvalidClassException: org.springframework.webflow.engine.impl.FlowExecutionImpl; local class incompatible: stream classdesc serialVersionUID = 507164007291131518, local class serialVersionUID = -4659689664429207075
So I tried to approach it by hardcoding private static final long serialVersionUID = -4659689664429207075L; just like the fix for SPR-4826, but it's still throwing the same error, so maybe I missed a class/step?
It's noteworthy that the snapshots that were serialized in 2.0.9 were done by JDK 1.6, whereas the upgraded 2.3.4 is with JDK 1.8, which explains the differently generated serialVersionUID, as FlowExecutionImpl.java doesn't have a serialVersionUID harcoded - ergo, the JDK has to auto generate one.
But, for backward compatibility in the spring-webflow upgrade, shouldn't the snapshots still be able to be loaded/deserialized in the later version?
I was able to get past the serialVersionUID by hardcoding the value 507164007291131518 in the FlowExecutionImpl class (adapted from SPR-4826).
But I'm not faced with a serialization issue for FlowExecutionStatus, and I traced it back to #1774, where it's been changed from a StaticLabeledEnum to a Java enum. So, I'm getting a deserialization issue: "Caused by: java.io.InvalidClassException: cannot bind non-enum descriptor to an enum class", as expected.
But, that still leaves me with a lot of snapshots that were serialized as StaticLabeledEnum, and now not deserializable because of it. What is the best way to upgrade/restore these snapshots?
Can I get some help on this? It's a blocker for us and it requires us to modify the webflow JAR to get it to work, but we can't deliver it officially because of the modification.
Nate Margono opened SWF-1737 and commented
I'm running into an issue that's awfully similar to SPR-4826. This is a blocker for my application's new release as well.
My issue is upgrading from spring-webflow 2.0.9.RELEASE to 2.3.4.RELEASE, and my previously existing snapshots can no longer be loaded/deserialized/unmarshalled:
java.io.InvalidClassException: org.springframework.webflow.engine.impl.FlowExecutionImpl; local class incompatible: stream classdesc serialVersionUID = 507164007291131518, local class serialVersionUID = -4659689664429207075
So I tried to approach it by hardcoding
private static final long serialVersionUID = -4659689664429207075L;
just like the fix for SPR-4826, but it's still throwing the same error, so maybe I missed a class/step?It's noteworthy that the snapshots that were serialized in 2.0.9 were done by JDK 1.6, whereas the upgraded 2.3.4 is with JDK 1.8, which explains the differently generated serialVersionUID, as FlowExecutionImpl.java doesn't have a serialVersionUID harcoded - ergo, the JDK has to auto generate one.
But, for backward compatibility in the spring-webflow upgrade, shouldn't the snapshots still be able to be loaded/deserialized in the later version?
What's my best option to approach this?
Affects: 2.3.4
Reference URL: spring-projects/spring-framework#9502
The text was updated successfully, but these errors were encountered: