diff --git a/pom.xml b/pom.xml index 0ed64813afec23b2f99b169ef5417ba250efd37c..f14d703e9286da4e5212d9150bcab28a9cc7112f 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ <org.mysql.version>5.1.46</org.mysql.version> <org.postgresql.version>42.2.5</org.postgresql.version> <org.infinispan.version>9.2.3.Final</org.infinispan.version> - <lucene.version>7.5.0</lucene.version> + <lucene.version>7.7.0</lucene.version> <version.selenium>3.13.0</version.selenium> <version.drone>2.5.1</version.drone> <activemq.version>5.15.8</activemq.version> diff --git a/src/main/java/org/olat/search/service/document/file/FileTypeDetector.java b/src/main/java/org/olat/search/service/document/file/FileTypeDetector.java index 65b58ccb2c2d7dd8e5dcdb81f07aa8ca68d61654..4816d82c2212ebc0068402c84354603d8e99b9e1 100644 --- a/src/main/java/org/olat/search/service/document/file/FileTypeDetector.java +++ b/src/main/java/org/olat/search/service/document/file/FileTypeDetector.java @@ -25,7 +25,6 @@ import java.io.InputStream; import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; -import org.olat.core.util.FileUtils; import org.olat.core.util.vfs.VFSLeaf; /** @@ -52,20 +51,18 @@ public class FileTypeDetector { throw new DocumentNotImplementedException("I cannot detect the document suffix (marked with '.') for " + fileName); } String suffix = fileName.substring(dotpos+1).toLowerCase(); - if("doc".equals(suffix)) { - if(checkMagicBytes(leaf, ZIP)) return "docx"; - } else if("xls".equals(suffix)) { - if(checkMagicBytes(leaf, ZIP)) return "xlsx"; - } else if("ppt".equals(suffix)) { - if(checkMagicBytes(leaf, ZIP)) return "pptx"; + if("doc".equals(suffix) && checkMagicBytes(leaf, ZIP)) { + return "docx"; + } else if("xls".equals(suffix) && checkMagicBytes(leaf, ZIP)) { + return "xlsx"; + } else if("ppt".equals(suffix) && checkMagicBytes(leaf, ZIP)) { + return "pptx"; } return suffix; } public static boolean checkMagicBytes(VFSLeaf leaf, String reference) { - InputStream in = null; - try { - in = leaf.getInputStream(); + try(InputStream in = leaf.getInputStream()) { byte[] buffer = new byte[50]; int n = in.read(buffer); if (n > 0) { @@ -78,8 +75,6 @@ public class FileTypeDetector { } } catch (IOException e) { log.warn("", e); - } finally { - FileUtils.closeSafely(in); } return false; } diff --git a/src/test/java/org/olat/search/service/document/file/FileDocumentFactoryTest.java b/src/test/java/org/olat/search/service/document/file/FileDocumentFactoryTest.java index 62edfaaf2af4ea1aa76a0b1588f6f553a4616e27..c1008fe8499dd710d321608baebed1992bd7e6d6 100644 --- a/src/test/java/org/olat/search/service/document/file/FileDocumentFactoryTest.java +++ b/src/test/java/org/olat/search/service/document/file/FileDocumentFactoryTest.java @@ -89,6 +89,8 @@ public class FileDocumentFactoryTest extends OlatTestCase { Assert.assertTrue("DOC must be supported", fileDocumentFactory.isFileSupported(getVFSFile("test2.DOC"))); Assert.assertTrue("doc must be supported", fileDocumentFactory.isFileSupported(getVFSFile("test.doc"))); + + Assert.assertTrue("doc must be supported", fileDocumentFactory.isFileSupported(getVFSFile("Test_word_indexing.docx"))); Assert.assertTrue("TXT must be supported", fileDocumentFactory.isFileSupported("test.TXT")); Assert.assertTrue("txt must be supported", fileDocumentFactory.isFileSupported("test.txt"));