HHH-10181 - CacheableFileXmlSource.doBind uses obsolete .bin file
Check for obsolete cache file during runtime of doBind(..) instead of CacheableFileXmlSource instantiation only. Subsequent calls of doBind on a given CacheableFileXmlSource instance should detect that cache file is fresh and make use of it.
This commit is contained in:
parent
5e87397902
commit
b1e4fc1ae4
|
@ -32,7 +32,6 @@ public class CacheableFileXmlSource extends XmlSource {
|
|||
private final File xmlFile;
|
||||
private final File serFile;
|
||||
private final boolean strict;
|
||||
private final boolean serFileObsolete;
|
||||
|
||||
public CacheableFileXmlSource(Origin origin, File xmlFile, boolean strict) {
|
||||
super( origin );
|
||||
|
@ -41,8 +40,6 @@ public class CacheableFileXmlSource extends XmlSource {
|
|||
|
||||
this.serFile = determineCachedFile( xmlFile );
|
||||
|
||||
this.serFileObsolete = xmlFile.exists() && serFile.exists() && xmlFile.lastModified() > serFile.lastModified();
|
||||
|
||||
if ( strict ) {
|
||||
if ( !serFile.exists() ) {
|
||||
throw new MappingException(
|
||||
|
@ -50,7 +47,7 @@ public class CacheableFileXmlSource extends XmlSource {
|
|||
origin
|
||||
);
|
||||
}
|
||||
if ( serFileObsolete ) {
|
||||
if ( isSerfileObsolete() ) {
|
||||
throw new MappingException(
|
||||
String.format( "Cached file [%s] could not be used as the mapping file is newer", origin.getName() ),
|
||||
origin
|
||||
|
@ -86,7 +83,7 @@ public class CacheableFileXmlSource extends XmlSource {
|
|||
}
|
||||
}
|
||||
else {
|
||||
if ( !serFileObsolete ) {
|
||||
if ( !isSerfileObsolete() ) {
|
||||
try {
|
||||
return readSerFile();
|
||||
}
|
||||
|
@ -141,5 +138,9 @@ public class CacheableFileXmlSource extends XmlSource {
|
|||
determineCachedFile( xmlFile )
|
||||
);
|
||||
}
|
||||
|
||||
private boolean isSerfileObsolete() {
|
||||
return xmlFile.exists() && serFile.exists() && xmlFile.lastModified() > serFile.lastModified();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue