Indexing Jira throws the "LocalDate only handles the Common Era - no BC dates are allowed" error in the logs

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。

*Fisheye および Crucible は除く

症状

The following errors are thrown in the Jira logs when trying to reindex:

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: LocalDate only handles the Common Era - no BC dates are allowed.
at com.atlassian.jira.index.FutureResult.await(FutureResult.java:35)
at com.atlassian.jira.index.CompositeResultBuilder$CompositeResult.await(CompositeResultBuilder.java:82)
....
at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: LocalDate only handles the Common Era - no BC dates are allowed.
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.atlassian.jira.index.FutureResult.await(FutureResult.java:31)
... 26 more
Caused by: java.lang.IllegalArgumentException: LocalDate only handles the Common Era - no BC dates are allowed.
at com.atlassian.jira.datetime.LocalDateFactory.from(LocalDateFactory.java:63)
at com.atlassian.jira.datetime.LocalDateFactory.from(LocalDateFactory.java:35)
at com.atlassian.jira.issue.index.indexers.impl.DueDateIndexer.addIndex(DueDateIndexer.java:29)

環境

Jira Server / Data Center on any version from 8.0.0.

診断

  • Go to the ⚙ > System > Logging and profiling page
    • Click on Configure logging level for another package
    • Add the package below with the DEBUG level

      com.atlassian.jira.index
    • Repeat these steps for the 2 other packages below

      com.atlassian.jira.issue.index.DefaultIndexManager
      com.atlassian.jira.index.AccumulatingResultBuilder
  • Start a new re-indexing and check the logs again. The DEBUG packages that were enabled will provide the exact table where the error is encountered
    • Taking the log snippet below as an example, the table causing the error is the worklog table (indicated after [c.a.j.issue.index.DefaultWorklogDocumentFactory] Indexing):

      2023-03-05 22:18:50,906+0000 IssueIndexer:thread-12 DEBUG xxxxxx 1338x283x1 19d10fk 172.19.2.10,10.42.2.0 /secure/admin/IndexReIndex!reindex.jspa [c.a.j.issue.index.DefaultWorklogDocumentFactory] Indexing worklog: issueId=35744, worklogId=11918, version=18
      2023-03-05 22:18:50,908+0000 IssueIndexer:thread-12 WARN xxxxxx 1338x283x1 19d10fk 172.19.2.10,10.42.2.0 /secure/admin/IndexReIndex!reindex.jspa [c.a.jira.index.AccumulatingResultBuilder] java.lang.IllegalArgumentException: LocalDate only handles the Common Era - no BC dates are allowed.
      java.lang.RuntimeException: java.lang.IllegalArgumentException: LocalDate only handles the Common Era - no BC dates are allowed.
      at com.atlassian.jira.index.DefaultIndex$Failure.<init>(DefaultIndex.java:100)
      at com.atlassian.jira.issue.index.DefaultIssueIndexer$EntityOperation.lambda$perform$6(DefaultIssueIndexer.java:862)
      at java.base/java.util.HashMap.forEach(HashMap.java:1337)

原因

There is an issue in Jira that has a date set in the BC era. e.g. 0001-12-07 22:24:30+05:53:28 BC. This could happen for any of the tables that has a date column, therefore it is necessary to go through the Diagnosis steps above to identify the problematic table(s).

ソリューション

  • To identify the incorrect date entries, refer to the table from the debug logs and execute the corresponding queries in the database. Below are examples of queries designed to detect incorrect date formats in the jiraissue table and the worklog table for startdate.:

    select * from jiraissue where duedate < '2000-01-01';
    OR
    select * from worklog where id = <worklogid from the debug logs>
    OR
    // This query is tested on Postgres, please make possible changes for respective databases
    select
        CONCAT(project_key.project_key, CONCAT('-', jiraissue.issuenum)) AS issuekey,
        TO_CHAR(worklog.created, 'yyyy-mm-dd bc') AS created,
        TO_CHAR(worklog.updated, 'yyyy-mm-dd bc') AS updated,
        TO_CHAR(worklog.startdate, 'yyyy-mm-dd bc') AS startdate
    from worklog
    inner join jiraissue ON jiraissue.id = worklog.issueid
    inner join project_key ON project_key.project_id = jiraissue.project
    where worklog.startdate < TO_DATE('2000-01-01', 'yyyy-mm-dd');
  • Jira を停止します。
  • Change the date to an appropriate format.  e.g. 2012-12-07 22:24:30+05:30
  • Start Jira and perform full reindexing again.


最終更新日 2024 年 11 月 1 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.