diff --git a/Neos.ContentRepository.Export/src/Event/ValueObject/ExportedEvent.php b/Neos.ContentRepository.Export/src/Event/ValueObject/ExportedEvent.php index a27c6ef5cf1..f3bdf74ed35 100644 --- a/Neos.ContentRepository.Export/src/Event/ValueObject/ExportedEvent.php +++ b/Neos.ContentRepository.Export/src/Event/ValueObject/ExportedEvent.php @@ -27,6 +27,7 @@ public static function fromRawEvent(Event $event): self $payload = \json_decode($event->data->value, true, 512, JSON_THROW_ON_ERROR); // unset content stream id as this is overwritten during import unset($payload['contentStreamId'], $payload['workspaceName']); + return new self( $event->id->value, $event->type->value, @@ -43,6 +44,7 @@ public static function fromJson(string $json): self } catch (\JsonException $e) { throw new \InvalidArgumentException(sprintf('Failed to decode JSON "%s": %s', $json, $e->getMessage()), 1638432979, $e); } + return new self( $data['identifier'], $data['type'], diff --git a/Neos.Neos/Classes/AssetUsage/CatchUpHook/AssetUsageCatchUpHook.php b/Neos.Neos/Classes/AssetUsage/CatchUpHook/AssetUsageCatchUpHook.php index e52b55bb99c..59e2c733a99 100644 --- a/Neos.Neos/Classes/AssetUsage/CatchUpHook/AssetUsageCatchUpHook.php +++ b/Neos.Neos/Classes/AssetUsage/CatchUpHook/AssetUsageCatchUpHook.php @@ -118,17 +118,23 @@ private function removeNodes(WorkspaceName $workspaceName, NodeAggregateId $node $contentGraph = $this->contentGraphReadModel->getContentGraph($workspaceName); foreach ($dimensionSpacePoints as $dimensionSpacePoint) { + $this->assetUsageIndexingService->removeIndexForWorkspaceNameNodeAggregateIdAndDimensionSpacePoint( + $this->contentRepositoryId, + $workspaceName, + $nodeAggregateId, + $dimensionSpacePoint + ); + $subgraph = $contentGraph->getSubgraph($dimensionSpacePoint, VisibilityConstraints::withoutRestrictions()); - $node = $subgraph->findNodeById($nodeAggregateId); $descendants = $subgraph->findDescendantNodes($nodeAggregateId, FindDescendantNodesFilter::create()); - $nodes = array_merge([$node], iterator_to_array($descendants)); - - /** @var Node $node */ - foreach ($nodes as $node) { - $this->assetUsageIndexingService->removeIndexForNode( + /** @var Node $descendant */ + foreach ($descendants as $descendant) { + $this->assetUsageIndexingService->removeIndexForWorkspaceNameNodeAggregateIdAndDimensionSpacePoint( $this->contentRepositoryId, - $node + $descendant->workspaceName, + $descendant->aggregateId, + $descendant->dimensionSpacePoint ); } } diff --git a/Neos.Neos/Classes/AssetUsage/Service/AssetUsageIndexingService.php b/Neos.Neos/Classes/AssetUsage/Service/AssetUsageIndexingService.php index a49c301a24d..f284ccf34b0 100644 --- a/Neos.Neos/Classes/AssetUsage/Service/AssetUsageIndexingService.php +++ b/Neos.Neos/Classes/AssetUsage/Service/AssetUsageIndexingService.php @@ -171,18 +171,6 @@ public function removeIndexForWorkspaceNameNodeAggregateIdAndDimensionSpacePoint ); } - public function removeIndexForNode( - ContentRepositoryId $contentRepositoryId, - Node $node - ): void { - $this->removeIndexForWorkspaceNameNodeAggregateIdAndDimensionSpacePoint( - $contentRepositoryId, - $node->workspaceName, - $node->aggregateId, - $node->dimensionSpacePoint - ); - } - public function removeIndexForWorkspace( ContentRepositoryId $contentRepositoryId, WorkspaceName $workspaceName