Fix #5003
This commit is contained in:
parent
4c554f8fa2
commit
13fcd309c0
1 changed files with 27 additions and 2 deletions
|
@ -14,10 +14,14 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
@ -77,7 +81,7 @@ public class IncrementalChangesManager {
|
||||||
List<String> list = new ArrayList<String>(regionUpdateFiles.monthUpdates.keySet());
|
List<String> list = new ArrayList<String>(regionUpdateFiles.monthUpdates.keySet());
|
||||||
for (String month : list) {
|
for (String month : list) {
|
||||||
RegionUpdate ru = regionUpdateFiles.monthUpdates.get(month);
|
RegionUpdate ru = regionUpdateFiles.monthUpdates.get(month);
|
||||||
if (ru.obfCreated < dateCreated) {
|
if (ru.obfCreated < dateCreated || checkIfItemOutdated(ru, dateCreated)) {
|
||||||
log.info("Delete overlapping month update " + ru.file.getName());
|
log.info("Delete overlapping month update " + ru.file.getName());
|
||||||
resourceManager.closeFile(ru.file.getName());
|
resourceManager.closeFile(ru.file.getName());
|
||||||
regionUpdateFiles.monthUpdates.remove(month);
|
regionUpdateFiles.monthUpdates.remove(month);
|
||||||
|
@ -97,7 +101,7 @@ public class IncrementalChangesManager {
|
||||||
if(ru == null) {
|
if(ru == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (ru.obfCreated < dateCreated ||
|
if (ru.obfCreated < dateCreated || (checkIfItemOutdated(ru, dateCreated)) ||
|
||||||
(monthRu != null && ru.obfCreated < monthRu.obfCreated)) {
|
(monthRu != null && ru.obfCreated < monthRu.obfCreated)) {
|
||||||
log.info("Delete overlapping day update " + ru.file.getName());
|
log.info("Delete overlapping day update " + ru.file.getName());
|
||||||
resourceManager.closeFile(ru.file.getName());
|
resourceManager.closeFile(ru.file.getName());
|
||||||
|
@ -411,4 +415,25 @@ public class IncrementalChangesManager {
|
||||||
}
|
}
|
||||||
return timestamp;
|
return timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkIfItemOutdated(RegionUpdate ru, long dateMainMapCreated) {
|
||||||
|
boolean outdated = false;
|
||||||
|
Date strDate = null;
|
||||||
|
String date = ru.date;
|
||||||
|
if (!Algorithms.isEmpty(date) && ru.obfCreated == dateMainMapCreated) {
|
||||||
|
try {
|
||||||
|
if (date.endsWith("00")) {
|
||||||
|
strDate = new SimpleDateFormat("yy_MM", Locale.getDefault()).parse(date);
|
||||||
|
} else {
|
||||||
|
strDate = new SimpleDateFormat("yy_MM_dd", Locale.getDefault()).parse(date);
|
||||||
|
}
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (new Date(dateMainMapCreated).after(strDate)) {
|
||||||
|
outdated = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return outdated;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue