【发布时间】:2012-08-26 07:01:59
【问题描述】:
我遇到了导致生产下降的问题。在 AWS/Ubuntu/Tomcat 堆栈中,正在运行的 Tomcat 的 CPU 跳到 100%,当我得到一个线程转储时,这一段代码总是在同一个地方被阻塞。 (所有其他人都被锁定并等待。)
"TP-Processor6" daemon prio=10 tid=0x0000000041ec2800 nid=0x41c4 runnable [0x00007f70194b5000]
java.lang.Thread.State: RUNNABLE
at sun.util.calendar.ZoneInfo.getTransitionIndex(ZoneInfo.java:322)
at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:248)
at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:225)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2024)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:1996)
at java.util.Calendar.setTimeInMillis(Calendar.java:1109)
at java.util.GregorianCalendar.<init>(GregorianCalendar.java:576)
at java.util.Calendar.createCalendar(Calendar.java:1011)
at java.util.Calendar.getInstance(Calendar.java:948)
at com.xxx.core.util.DateUtil.modifyDate(DateUtil.java:385)
at com.xxx.core.util.DateUtil.getDayDate(DateUtil.java:563)
at com.xxx.core.util.DateUtil.getDayDate(DateUtil.java:573)
at com.xxx.core.util.DateUtil.getDayDate(DateUtil.java:569)
at com.xxx.core.util.DateUtil.splitByDays(DateUtil.java:496)
at com.xxx.core.util.DateUtil.splitDateIntervalByIntervals(DateUtil.java:474)
at com.xxx.core.util.DateUtil.splitDateIntervalByIntervals(DateUtil.java:436)
【问题讨论】:
-
您是否遇到堆栈溢出错误?
-
操作系统设置有问题,你在其他机器上试过吗?
-
您是提供时区,还是获取默认时区?
-
ubuntu@ip-10-2-118-175:~$ java -version java version "1.6.0_24" Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot( TM) 64 位服务器 VM(内部版本 19.1-b02,混合模式)
-
调用 Calendar.getInstance 的代码是这样的: Calendar calendar = Calendar.getInstance();日历.setTime(日期); calendar.setTimeZone(TimeZone.getDefault());
标签: java timezone timezone-offset