Merge pull request #801 from apache/fix/dateformat-concurrency

Avoid SImpleDateFormat concurrency risk
This commit is contained in:
彭勇升 pengys 2018-02-09 10:01:43 +08:00 committed by GitHub
commit a3609de7f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 5 deletions

View File

@ -29,12 +29,8 @@ import org.apache.skywalking.apm.collector.core.UnexpectedException;
public enum TimeBucketUtils {
INSTANCE;
private final SimpleDateFormat dayDateFormat = new SimpleDateFormat("yyyyMMdd");
private final SimpleDateFormat hourDateFormat = new SimpleDateFormat("yyyyMMddHH");
private final SimpleDateFormat minuteDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
private final SimpleDateFormat secondDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
public long getMinuteTimeBucket(long time) {
SimpleDateFormat minuteDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
String timeStr = minuteDateFormat.format(calendar.getTime());
@ -42,6 +38,7 @@ public enum TimeBucketUtils {
}
public long getSecondTimeBucket(long time) {
SimpleDateFormat secondDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
String timeStr = secondDateFormat.format(calendar.getTime());
@ -49,6 +46,7 @@ public enum TimeBucketUtils {
}
public long getHourTimeBucket(long time) {
SimpleDateFormat hourDateFormat = new SimpleDateFormat("yyyyMMddHH");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
String timeStr = hourDateFormat.format(calendar.getTime()) + "00";
@ -56,6 +54,7 @@ public enum TimeBucketUtils {
}
public long getDayTimeBucket(long time) {
SimpleDateFormat dayDateFormat = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
String timeStr = dayDateFormat.format(calendar.getTime()) + "0000";