【发布时间】:2012-12-23 12:01:11
【问题描述】:
我们遇到此错误,JSP 页面变为空白(白色):
2013 年 1 月 9 日晚上 7:30:39 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SEVERE:Web 应用程序 [/MyWebApp] 创建了一个 具有 [net.sourceforge.jtds.jdbc.DateTime$1] 类型键的 ThreadLocal (值 [net.sourceforge.jtds.jdbc.DateTime$1@48a47])和值 键入 [java.util.GregorianCalendar](值 [java.util.GregorianCalendar[time=1357531128420,areFieldsSet=true,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Australia/Sydney",offset=36000000,dstSavings=3600000,useDaylight =true,transitions=142,lastRule=java.util.SimpleTimeZone[id=Australia/Sydney,offset=36000000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=1,startDayOfWeek =1,startTime=7200000,startTimeMode=1,endMode=3,endMonth=3,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=1]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR =2013,MONTH=0,WEEK_OF_YEAR=2,WEEK_OF_MONTH=2,DAY_OF_MONTH=7,DAY_OF_YEAR=7,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=58,SECOND=48 ,MILLISECOND=420,ZONE_OFFSET=36000000,DST_OFFSET=3600000]]) 但在 Web 应用程序停止时未能将其删除。这是 很可能会造成内存泄漏。
建议的解决方案是:
每次需要
Calendar时使用新实例或检查
ResultSet.close中的某个钩子是否足以调用ThreadLocal.remove()
但是,在我们的例子中,我们需要重现错误,因此可以测试修复,而无需无限期地等待错误再次发生。
【问题讨论】:
-
ermm ...所以你的问题是什么?