summaryrefslogtreecommitdiff
path: root/src/main/java/core/VSAbstractProcess.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/core/VSAbstractProcess.java')
-rw-r--r--src/main/java/core/VSAbstractProcess.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/core/VSAbstractProcess.java b/src/main/java/core/VSAbstractProcess.java
index 78e7844..ab7444d 100644
--- a/src/main/java/core/VSAbstractProcess.java
+++ b/src/main/java/core/VSAbstractProcess.java
@@ -695,6 +695,17 @@ public abstract class VSAbstractProcess extends VSSerializablePrefs {
for (int i = 0; i < numProtocols; ++i) {
String protocolClassname = (String) objectInputStream.readObject();
+ if (protocolClassname == null || protocolClassname.trim().isEmpty()) {
+ // Handle saved files with null protocol classnames
+ // This can happen if the protocol didn't call setClassname() when it was saved
+ System.err.println("Warning: Found null/empty protocol classname during deserialization, skipping...");
+ // We still need to read the protocol's serialized data to keep the stream in sync
+ // Create a dummy protocol to consume the data
+ VSAbstractProtocol dummyProtocol = new protocols.implementations.VSDummyProtocol();
+ dummyProtocol.init((VSInternalProcess)this);
+ dummyProtocol.deserialize(serialize, objectInputStream);
+ continue;
+ }
VSAbstractProtocol protocol = getProtocolObject_(protocolClassname);
protocol.deserialize(serialize, objectInputStream);
}