From 7ae0ec9d50eab2c0deaa7c1f3e65c52c7bd87a98 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 18 Feb 2019 11:02:05 +0100
Subject: [PATCH] OO-3841: update lucene to 7.7.0 (no need to reindex)

---
 pom.xml                                       |  2 +-
 .../document/file/FileTypeDetector.java       | 19 +++++++------------
 .../file/FileDocumentFactoryTest.java         |  2 ++
 3 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0ed64813afe..f14d703e928 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 65b58ccb2c2..4816d82c221 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 62edfaaf2af..c1008fe8499 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"));
-- 
GitLab