docs: private void copy( ITransaction transaction,
                         String sourcePath,
                         String destinationPath,
                         Hashtable<String, Integer> errorList,
                         HttpServletRequest req,
                         HttpServletResponse resp ) throws WebdavException, IOException {
  
          StoredObject sourceSo = store.getStoredObject(transaction, sourcePath);
          if (sourceSo == null) {
              resp.setStatus(WebdavStatus.SC_NOT_FOUND);
              return;
          }
          if (sourceSo.isResource()) {
              store.createResource(transaction, destinationPath);
              long resourceLength = store.setResourceContent(transaction,
                                                             destinationPath,
                                                             store.getResourceContent(transaction, sourcePath),
                                                             null,
                                                             null);
  
              if (resourceLength != -1) {
                  StoredObject destinationSo = store.getStoredObject(transaction, destinationPath);
                  destinationSo.setResourceLength(resourceLength);
              }
  
          } else {
  
              if (sourceSo.isFolder()) {
                  copyFolder(transaction, sourcePath, destinationPath, errorList, req, resp);
              } else {
                  resp.sendError(WebdavStatus.SC_NOT_FOUND);
              }
          }
      }