Skip to content
Snippets Groups Projects
Commit 3dfb2052 authored by srosse's avatar srosse
Browse files

OO-4310: make sure the deleted metadata are really deleted

parent e9c2395f
No related branches found
No related tags found
No related merge requests found
......@@ -288,8 +288,16 @@ public class VFSMetadataDAO {
.executeUpdate();
}
/**
* Update existing files only.
*
* @param fileSize The new file size (mandatory)
* @param lastModified The modification date (mandatory)
* @param relativePath The path to the file
* @param filename The name of the file
*/
public void updateMetadata(long fileSize, Date lastModified, String relativePath, String filename) {
String updateQuery = "update vfsmetadatafilesaved set fileLastModified=:lastModified, fileSize=:fileSize where filename=:filename and relativePath=:relativePath";
String updateQuery = "update vfsmetadatafilesaved set fileLastModified=:lastModified, fileSize=:fileSize, deleted=false where filename=:filename and relativePath=:relativePath";
dbInstance.getCurrentEntityManager()
.createQuery(updateQuery)
.setParameter("filename", filename)
......
......@@ -199,7 +199,7 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv
VFSMetadata parent = getMetadataFor(file.getParentFile());
metadata = metadataDao.createMetadata(uuid, relativePath, filename, new Date(), size, directory, uri, "file", parent);
} else if(file.isFile() && file.length() != metadata.getFileSize()) {
} else if(file.isFile() && (file.length() != metadata.getFileSize() || !file.exists() != metadata.isDeleted())) {
AsyncFileSizeUpdateEvent event = new AsyncFileSizeUpdateEvent(relativePath, filename);
coordinatorManager.getCoordinator().getEventBus().fireEventToListenersOf(event, fileSizeSubscription);
}
......
......@@ -51,6 +51,8 @@ public class VFSMetadataFileSaved implements Persistable {
private Date fileLastModified;
@Column(name="f_size", nullable=false, insertable=true, updatable=true)
private long fileSize;
@Column(name="f_deleted", nullable=false, insertable=true, updatable=true)
private boolean deleted;
@Column(name="f_filename", nullable=false, insertable=false, updatable=false)
private String filename;
@Column(name="f_relative_path", nullable=false, insertable=false, updatable=false)
......@@ -97,6 +99,14 @@ public class VFSMetadataFileSaved implements Persistable {
this.relativePath = relativePath;
}
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
@Override
public int hashCode() {
return getKey().hashCode();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment