From db2364e238e8fc7923bc57880e23484185bfe21c Mon Sep 17 00:00:00 2001
From: Shinsuke Sugaya <shinsuke@apache.org>
Date: Tue, 26 Mar 2019 06:52:30 +0900
Subject: [PATCH] fix #2065 parse pdf_date

---
 src/main/java/org/codelibs/fess/Constants.java   |  2 ++
 .../transformer/AbstractFessFileTransformer.java | 16 +++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/codelibs/fess/Constants.java b/src/main/java/org/codelibs/fess/Constants.java
index 18ec21f5f..e1b693026 100644
--- a/src/main/java/org/codelibs/fess/Constants.java
+++ b/src/main/java/org/codelibs/fess/Constants.java
@@ -402,6 +402,8 @@ public class Constants extends CoreLibConstants {
 
     public static final String MAPPING_TYPE_DATE = "date";
 
+    public static final String MAPPING_TYPE_PDF_DATE = "pdf_date";
+
     public static final String PAGING_QUERY_LIST = "pagingQueryList";
 
     public static final String REQUEST_LANGUAGES = "requestLanguages";
diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java
index 3367ff2c8..f06f92fb1 100644
--- a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java
+++ b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java
@@ -138,11 +138,17 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im
                                             dataMap.put(mapping.getValue1(), Long.parseLong(values[0]));
                                         } else if (Constants.MAPPING_TYPE_DOUBLE.equalsIgnoreCase(mapping.getValue2())) {
                                             dataMap.put(mapping.getValue1(), Double.parseDouble(values[0]));
-                                        } else if (Constants.MAPPING_TYPE_DATE.equalsIgnoreCase(mapping.getValue2())) {
-                                            final Date dt =
-                                                    FessFunctions.parseDate(values[0],
-                                                            StringUtil.isNotBlank(mapping.getValue3()) ? mapping.getValue3()
-                                                                    : Constants.DATE_OPTIONAL_TIME);
+                                        } else if (Constants.MAPPING_TYPE_DATE.equalsIgnoreCase(mapping.getValue2())
+                                                || Constants.MAPPING_TYPE_PDF_DATE.equalsIgnoreCase(mapping.getValue2())) {
+                                            final String dateFormate;
+                                            if (StringUtil.isNotBlank(mapping.getValue3())) {
+                                                dateFormate = mapping.getValue3();
+                                            } else if (Constants.MAPPING_TYPE_PDF_DATE.equalsIgnoreCase(mapping.getValue2())) {
+                                                dateFormate = mapping.getValue2();
+                                            } else {
+                                                dateFormate = Constants.DATE_OPTIONAL_TIME;
+                                            }
+                                            final Date dt = FessFunctions.parseDate(values[0], dateFormate);
                                             if (dt != null) {
                                                 dataMap.put(mapping.getValue1(), FessFunctions.formatDate(dt));
                                             } else {
-- 
GitLab