{"record":{"id":"6dad97369235e791","repo":"stanfordnlp/CoreNLP","slug":"ex","errorCode":null,"errorMessage":"ex","messagePattern":"ex","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"src/edu/stanford/nlp/time/TimeExpressionExtractorImpl.java","lineNumber":294,"sourceCode":"  private void resolveTimeExpression(CoreMap annotation, TimeExpression te, SUTime.Time docDate) {\n    SUTime.Temporal temporal = te.getTemporal();\n    if (temporal != null) {\n      // TODO: use correct time for anchor\n      try {\n        int flags = timexPatterns.determineRelFlags(annotation, te);\n        //int flags = 0;\n        SUTime.Temporal grounded = temporal.resolve(docDate, flags);\n        if (grounded == null) {\n          logger.debug(\"Error resolving \" + temporal + \", using docDate=\" + docDate);\n        }\n        if (grounded != temporal) {\n          te.origTemporal = temporal;\n          te.setTemporal(grounded);\n        }\n      } catch (Exception ex) {\n        if (options.verbose) {\n          logger.warn(\"Error resolving \" + temporal, ex);\n          logger.warn(ex);\n        }\n      }\n    }\n  }\n\n  private void resolveTimeExpressions(CoreMap annotation, List<TimeExpression> timeExpressions, SUTime.Time docDate) {\n    for (TimeExpression te:timeExpressions) {\n      resolveTimeExpression(annotation, te, docDate);\n    }\n  }\n\n  private static SUTime.Time findReferenceDate(List<TimeExpression> timeExpressions) {\n    // Find first full date in this annotation with year, month, and day\n    for (TimeExpression te:timeExpressions) {\n      SUTime.Temporal t = te.getTemporal();\n      if (t instanceof SUTime.Time) {\n        if (t.isGrounded()) {\n          return t.getTime();","sourceCodeStart":276,"sourceCodeEnd":312,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/time/TimeExpressionExtractorImpl.java#L276-L312","documentation":"Companion log line for the catch at TimeExpressionExtractorImpl.java:293: the caught exception from temporal resolution is logged via logger.warn(ex) after the 'Error resolving <temporal>' message, providing the stack trace for why grounding the temporal failed.","triggerScenarios":"Same path as 1625: resolveTimeExpression catches while grounding a temporal against the reference date, with verbose logging enabled.","commonSituations":"Diagnosing why relative time expressions remain unresolved in output TIMEX3 values; the stack trace pinpoints the failing SUTime operation.","solutions":["Read the logged stack trace to find the failing resolution operation","Correct the reference-date configuration or the offending rule","Upgrade CoreNLP if the failure is in stock SUTime logic"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  resolve(annotation, timeExpressions, docDate);\n} catch (Exception ex) {\n  log.warn(\"Temporal resolution failed\", ex);\n}","preventionTips":["Correlate this stack trace with the preceding 'Error resolving' line","Test resolution against many reference dates (month/year boundaries) in CI","Upgrade CoreNLP for known relative-date resolution fixes"],"tags":["java","nlp","sutime","logged-exception"],"backgroundTag":"invalid-date-format","analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}