diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-21 20:23:09 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-21 20:23:09 +0300 |
| commit | f0e31d4de0c8e206260467420257a6f04ffc8e90 (patch) | |
| tree | d9d720999a08dfc19b99df9aecf6086412f5d83a | |
| parent | 899be3a8bce04869d6213252f3d9869e3f2bc5a1 (diff) | |
Fix null in VSProtocolEvent shortname during deserialization
- Handle case where createShortname is called before fields are initialized
- Only print eventShortname in debug output when it's not null
- Return saved shortname or default when protocol fields aren't ready
This eliminates the 'eventShortname: null Server deactivated' messages
in test output.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
| -rw-r--r-- | src/main/java/events/VSAbstractEvent.java | 6 | ||||
| -rw-r--r-- | src/main/java/events/internal/VSProtocolEvent.java | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/events/VSAbstractEvent.java b/src/main/java/events/VSAbstractEvent.java index 1bbfc05..7b12a1b 100644 --- a/src/main/java/events/VSAbstractEvent.java +++ b/src/main/java/events/VSAbstractEvent.java @@ -337,7 +337,11 @@ abstract public class VSAbstractEvent extends VSSerializablePrefs { if (VSSerialize.DEBUG) { System.out.println("eventClassname: " + eventClassname); - System.out.println("eventShortname: " + eventShortname); + // Note: eventShortname might be null here for internal events + // that set their shortname in their own deserialize method + if (eventShortname != null) { + System.out.println("eventShortname: " + eventShortname); + } } serialize.setObject(id, "event", this); diff --git a/src/main/java/events/internal/VSProtocolEvent.java b/src/main/java/events/internal/VSProtocolEvent.java index 0cd6db4..54c8974 100644 --- a/src/main/java/events/internal/VSProtocolEvent.java +++ b/src/main/java/events/internal/VSProtocolEvent.java @@ -187,11 +187,18 @@ public class VSProtocolEvent extends VSAbstractInternalEvent } protected String createShortname(String savedShortname) { + // Handle case where this is called during parent deserialization + // before our fields are initialized + if (protocolClassname == null || prefs == null) { + return savedShortname != null ? savedShortname : "Protocol Event"; + } + // Always use current localization strings String protocolShortname = VSRegisteredEvents.getShortnameByClassname(protocolClassname); if (protocolShortname == null) { protocolShortname = protocolClassname; } + String clientServer = isClientProtocol ? prefs.getString("lang.client") : prefs.getString("lang.server"); |
