Details
-
Bug
-
Resolution: Fixed
-
Medium
-
2.6.1 Pro, 3.0 Pro Preview
-
2.06
-
Description
JIRA does not impose an upper limit on date fields. As a result, an invalid date can be entered that breaks lucene:
2004-09-04 11:46:30,969 WARN [jira.issue.index.DefaultIndexManager] There was an exception whilst reindexing issue
OPS-177java.lang.RuntimeException: time too late
java.lang.RuntimeException: time too late
at org.apache.lucene.document.DateField.timeToString(DateField.java:106)
at org.apache.lucene.document.DateField.dateToString(DateField.java:92)
at com.atlassian.jira.issue.index.AbstractDocument.indexDateField(AbstractDocument.java:96)
at com.atlassian.jira.issue.index.IssueDocument.getDocument(IssueDocument.java:64)
at com.atlassian.jira.issue.index.DefaultIndexManager.indexIssueAndComments(DefaultIndexManager.java:183)
at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:109)
at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexAll(DefaultIndexManager.java:71)
at com.atlassian.jira.web.action.admin.IndexAdminImpl.doReindex(IndexAdminImpl.java:208)
at com.atlassian.jira.web.action.admin.IndexAdminImpl.doActivate(IndexAdminImpl.java:159)
at com.atlassian.jira.web.action.admin.IndexAdminImpl.doReindex(IndexAdminImpl.java:202)
We can fix this by imposing the date length limit that Lucene imposes:
// make date strings long enough to last a millenium
private static int DATE_LEN = Long.toString(1000L*365*24*60*60*1000, Character.MAX_RADIX).length();
....
if (s.length() > DATE_LEN)
throw new RuntimeException("time too late");
Attachments
Issue Links
- is incorporated by
-
JRASERVER-4467 Insufficient range checking on date fields
- Closed
- is related to
-
JRASERVER-4948 time too early. Please manually reindex
- Closed
-
JRASERVER-13154 Upgrade to Lucene 2.x
- Closed