2727use OCP \Files \Storage \IStorage ;
2828use OCP \IUser ;
2929use OCP \IUserSession ;
30+ use Psr \Log \LoggerInterface ;
3031
3132/** @template-implements IEventListener<Event> */
3233class VersionStorageMoveListener implements IEventListener {
@@ -36,6 +37,7 @@ class VersionStorageMoveListener implements IEventListener {
3637 public function __construct (
3738 private IVersionManager $ versionManager ,
3839 private IUserSession $ userSession ,
40+ private LoggerInterface $ logger ,
3941 ) {
4042 }
4143
@@ -98,7 +100,21 @@ private function recursivelyHandleMoveOrCopy(Event $event, IUser $user, ?Node $s
98100 $ source = $ this ->movedNodes [$ target ->getId ()];
99101 }
100102
101- /** @var File $source */
103+ if ($ source === null ) {
104+ $ this ->logger ->warning (
105+ 'Failed to retrieve source file during version move/copy. ' ,
106+ [
107+ 'eventClass ' => get_class ($ event ),
108+ 'targetPath ' => $ target ->getPath (),
109+ 'targetId ' => $ target ->getId (),
110+ 'movedNodesKeys ' => array_keys ($ this ->movedNodes ),
111+ 'sourceBackendClass ' => get_class ($ sourceBackend ),
112+ 'targetBackendClass ' => get_class ($ targetBackend ),
113+ ]
114+ );
115+ return ;
116+ }
117+
102118 $ this ->handleMoveOrCopy ($ event , $ user , $ source , $ target , $ sourceBackend , $ targetBackend );
103119 } elseif ($ target instanceof Folder) {
104120 /** @var Folder $source */
0 commit comments