fix #1292 check generatorList
This commit is contained in:
parent
2ee2160dcc
commit
a10416816b
3 changed files with 21 additions and 14 deletions
|
@ -211,20 +211,24 @@ public class ThumbnailManager {
|
|||
idList.add(entity.getId());
|
||||
final String generatorName = entity.getGenerator();
|
||||
try {
|
||||
final ThumbnailGenerator generator = ComponentUtil.getComponent(generatorName);
|
||||
final File outputFile = new File(baseDir, entity.getPath());
|
||||
final File noImageFile = new File(outputFile.getAbsolutePath() + NOIMAGE_FILE_SUFFIX);
|
||||
if (!noImageFile.isFile() || System.currentTimeMillis() - noImageFile.lastModified() > noImageExpired) {
|
||||
if (noImageFile.isFile() && !noImageFile.delete()) {
|
||||
logger.warn("Failed to delete " + noImageFile.getAbsolutePath());
|
||||
}
|
||||
if (!generator.generate(entity.getThumbnailId(), outputFile)) {
|
||||
new File(outputFile.getAbsolutePath() + NOIMAGE_FILE_SUFFIX).setLastModified(System.currentTimeMillis());
|
||||
} else {
|
||||
final long interval = fessConfig.getThumbnailGeneratorIntervalAsInteger().longValue();
|
||||
if (interval > 0) {
|
||||
Thread.sleep(interval);
|
||||
final ThumbnailGenerator generator = ComponentUtil.getComponent(generatorName);
|
||||
if (generator.isAvailable()) {
|
||||
if (!generator.generate(entity.getThumbnailId(), outputFile)) {
|
||||
new File(outputFile.getAbsolutePath() + NOIMAGE_FILE_SUFFIX).setLastModified(System.currentTimeMillis());
|
||||
} else {
|
||||
final long interval = fessConfig.getThumbnailGeneratorIntervalAsInteger().longValue();
|
||||
if (interval > 0) {
|
||||
Thread.sleep(interval);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.warn(generatorName + " is not available.");
|
||||
}
|
||||
} else if (logger.isDebugEnabled()) {
|
||||
logger.debug("No image file exists: " + noImageFile.getAbsolutePath());
|
||||
|
@ -291,6 +295,7 @@ public class ThumbnailManager {
|
|||
}
|
||||
|
||||
public void add(final ThumbnailGenerator generator) {
|
||||
logger.info(generator.getName() + " is available.");
|
||||
if (generator.isAvailable()) {
|
||||
generatorList.add(generator);
|
||||
}
|
||||
|
|
|
@ -59,6 +59,8 @@ public abstract class BaseThumbnailGenerator implements ThumbnailGenerator {
|
|||
|
||||
protected int maxRedirectCount = 10;
|
||||
|
||||
protected Boolean available = null;
|
||||
|
||||
public void addCondition(final String key, final String regex) {
|
||||
final String value = conditionMap.get(key);
|
||||
if (StringUtil.isBlank(value)) {
|
||||
|
@ -84,6 +86,9 @@ public abstract class BaseThumbnailGenerator implements ThumbnailGenerator {
|
|||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
if (available != null) {
|
||||
return available;
|
||||
}
|
||||
if (generatorList != null && !generatorList.isEmpty()) {
|
||||
String path = System.getenv("PATH");
|
||||
if (path == null) {
|
||||
|
@ -97,7 +102,7 @@ public abstract class BaseThumbnailGenerator implements ThumbnailGenerator {
|
|||
if (path != null) {
|
||||
stream(path.split(File.pathSeparator)).of(stream -> stream.map(s -> s.trim()).forEach(s -> pathList.add(s)));
|
||||
}
|
||||
return generatorList.stream().map(s -> {
|
||||
available = generatorList.stream().map(s -> {
|
||||
if (s.startsWith("${path}")) {
|
||||
for (final String p : pathList) {
|
||||
final File f = new File(s.replace("${path}", p));
|
||||
|
@ -110,8 +115,10 @@ public abstract class BaseThumbnailGenerator implements ThumbnailGenerator {
|
|||
}
|
||||
return s;
|
||||
}).allMatch(s -> new File(s).isFile());
|
||||
} else {
|
||||
available = true;
|
||||
}
|
||||
return true;
|
||||
return available;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -28,9 +28,4 @@ public class EmptyGenerator extends BaseThumbnailGenerator {
|
|||
public void destroy() {
|
||||
// nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue