Community
Participate
Working Groups
The server implementation of copy/move assumes source paths are server file system locations: /A/SomeFolder/SomeFile.txt In practice clients will always send locations that include the file servlet location: /file/A/SomeFolder/SomeFile.txt The client can't be expected to strip off the servlet location. This should be done on the server. The server JUnit tests for copy/move also make this bad assumption.
There are also a couple of path manipulation bugs in the client code: 1) The stripPath function in fileCommands.js strips trailing separators in the case of location with a query: /file/A/?depth=1 -> /file/A Trailing separators are important in HTTP URLs because they differentiate files from directories. It should be: /file/A/?depth=1 -> /file/A/ 2) fileImpls.js wasn't properly computing the destination name when the source path has a trailing separator.
Fixes for all problems pushed.