From 9a3f483e9cbcaacd88299ad11d0d10c7e178e430 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 14 Jun 2022 16:57:16 +0100 Subject: [PATCH] Try again --- internal/caching/cache_roomevents.go | 4 +++- roomserver/storage/shared/storage.go | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/caching/cache_roomevents.go b/internal/caching/cache_roomevents.go index 8afef42db..5f5875940 100644 --- a/internal/caching/cache_roomevents.go +++ b/internal/caching/cache_roomevents.go @@ -17,5 +17,7 @@ func (c Caches) GetRoomServerEvent(eventNID types.EventNID) (*gomatrixserverlib. } func (c Caches) StoreRoomServerEvent(eventNID types.EventNID, event *gomatrixserverlib.Event) { - c.RoomServerEvents.Set(int64(eventNID), event) + if event != nil { + c.RoomServerEvents.Set(int64(eventNID), event) + } } diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go index 6df7405b6..529c5aead 100644 --- a/roomserver/storage/shared/storage.go +++ b/roomserver/storage/shared/storage.go @@ -437,7 +437,7 @@ func (d *Database) events( ) ([]types.Event, error) { results := make([]types.Event, len(inputEventNIDs)) eventNIDs := make([]types.EventNID, 0, len(results)) - for _, nid := range eventNIDs { + for _, nid := range inputEventNIDs { if event, ok := d.Cache.GetRoomServerEvent(nid); ok { results = append(results, types.Event{ EventNID: nid, @@ -487,15 +487,16 @@ func (d *Database) events( result.EventNID = eventJSON.EventNID roomNID := roomNIDs[result.EventNID] roomVersion := roomVersions[roomNID] - result.Event, err = gomatrixserverlib.NewEventFromTrustedJSONWithEventID( + event, err := gomatrixserverlib.NewEventFromTrustedJSONWithEventID( eventIDs[eventJSON.EventNID], eventJSON.EventJSON, false, roomVersion, ) if err != nil { return nil, err } if result.Event != nil { - d.Cache.StoreRoomServerEvent(result.EventNID, result.Event) + d.Cache.StoreRoomServerEvent(eventJSON.EventNID, event) } + result.Event = event } if !redactionsArePermanent { d.applyRedactions(results)