From 5e374c7d9717cc313a1c407cff1707e2819c10a2 Mon Sep 17 00:00:00 2001 From: "Vitaliy.Bibaev" Date: Thu, 7 Jun 2018 19:48:45 +0300 Subject: [PATCH] EA-121178 Add exception handling and report diagnostics info --- .../intellij/stats/personalization/impl/DayImpl.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/stats-collector/src/com/intellij/stats/personalization/impl/DayImpl.kt b/plugins/stats-collector/src/com/intellij/stats/personalization/impl/DayImpl.kt index 89ffc49dd19b..eb12f36b849d 100644 --- a/plugins/stats-collector/src/com/intellij/stats/personalization/impl/DayImpl.kt +++ b/plugins/stats-collector/src/com/intellij/stats/personalization/impl/DayImpl.kt @@ -16,6 +16,7 @@ package com.intellij.stats.personalization.impl +import com.intellij.openapi.diagnostic.Logger import com.intellij.stats.personalization.Day import java.text.ParsePosition import java.text.SimpleDateFormat @@ -30,11 +31,20 @@ class DayImpl(date: Date) : Day { override val year: Int companion object { + private val LOG = Logger.getInstance(DayImpl::class.java) private val DATE_FORMAT = SimpleDateFormat("dd-MM-yyyy") fun fromString(str: String): Day? { val position = ParsePosition(0) - val date = DATE_FORMAT.parse(str, position) + + val date: Date + try { + date = DATE_FORMAT.parse(str, position) + } + catch (e: NumberFormatException) { + LOG.error("Could not parse a date from string: $str. Collected data for the day will be skipped.") + return null + } if (position.index == 0) return null return DayImpl(date) }