Revision: 18958
http://sourceforge.net/p/dcm4che/svn/18958
Author: javawilli
Date: 2021-03-11 16:00:12 +0000 (Thu, 11 Mar 2021)
Log Message:
-----------
Improve MD5 Deleter check
Modified Paths:
--------------
dcm4chee/dcm4chee-arc/branches/DCM4CHEE_2_18_0-RC/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/entity/StudyOnFileSystemBean.java
Modified: dcm4chee/dcm4chee-arc/branches/DCM4CHEE_2_18_0-RC/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/entity/StudyOnFileSystemBean.java
===================================================================
--- dcm4chee/dcm4chee-arc/branches/DCM4CHEE_2_18_0-RC/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/entity/StudyOnFileSystemBean.java 2021-03-10 12:42:27 UTC (rev 18957)
+++ dcm4chee/dcm4chee-arc/branches/DCM4CHEE_2_18_0-RC/dcm4jboss-ejb/src/java/org/dcm4chex/archive/ejb/entity/StudyOnFileSystemBean.java 2021-03-11 16:00:12 UTC (rev 18958)
@@ -381,11 +381,13 @@
private boolean checkCountWithMD5(StudyLocal study, String fsGroup, String copyOnFSGroup, boolean copyArchived, boolean copyOnReadOnlyFS,
Set fileMD5) throws FinderException {
int count = 0;
+ int countOnline;
boolean checkMD5 = fileMD5 != null && !fileMD5.isEmpty();
if (copyOnFSGroup != null) {
+ countOnline = checkMD5 ? this.selectCountInFileMd5(SELECT_COUNT_BASE+" = ?2 AND f.fileStatus >= 0", fileMD5, study, fsGroup) : study.getNumberOfStudyRelatedInstances();
for (StringTokenizer st = new StringTokenizer(copyOnFSGroup, "&") ; st.hasMoreElements() ;) {
count = checkCopyOnFSGroupWithMD5(st.nextToken(), copyArchived, copyOnReadOnlyFS, study, fileMD5);
- if (count != fileMD5.size()) {
+ if (count != countOnline) {
return false;
}
}
@@ -406,8 +408,8 @@
return true; // no constraint
}
}
+ countOnline = checkMD5 ? this.selectCountInFileMd5(SELECT_COUNT_BASE+" = ?2 AND f.fileStatus >= 0", fileMD5, study, fsGroup) : study.getNumberOfStudyRelatedInstances();
}
- int countOnline = checkMD5 ? this.selectCountInFileMd5(SELECT_COUNT_BASE+" = ?2 AND f.fileStatus >= 0", fileMD5, study, fsGroup) : study.getNumberOfStudyRelatedInstances();
return count == countOnline;
}
@@ -486,7 +488,7 @@
public abstract Timestamp ejbSelectMaxFileCreatedTimeNotOnGroupOnROandArchived(StudyLocal study, String fsGroupId) throws javax.ejb.FinderException;
/**
- * @ejb.select query="SELECT f.fileMd5Field FROM File f WHERE f.instance.series.study = ?1 AND f.fileSystem.groupID = ?2"
+ * @ejb.select query="SELECT f.fileMd5Field FROM File f WHERE f.fileStatus >= 0 AND f.instance.series.study = ?1 AND f.fileSystem.groupID = ?2"
*/
public abstract Set ejbSelectFileMd5FromStudyOnGroup(StudyLocal study, String fsGroupId) throws javax.ejb.FinderException;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|