Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
8b869b42
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8b869b42
编写于
7月 20, 2017
作者:
R
rpatil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8181323: Better timezone processing
Reviewed-by: naoto, rriggs
上级
9cb71a4a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
6 deletion
+14
-6
src/share/classes/java/util/SimpleTimeZone.java
src/share/classes/java/util/SimpleTimeZone.java
+14
-6
未找到文件。
src/share/classes/java/util/SimpleTimeZone.java
浏览文件 @
8b869b42
/*
* Copyright (c) 1996, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
7
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -41,6 +41,7 @@ package java.util;
import
java.io.ObjectInputStream
;
import
java.io.ObjectOutputStream
;
import
java.io.IOException
;
import
java.io.InvalidObjectException
;
import
sun.util.calendar.CalendarSystem
;
import
sun.util.calendar.CalendarUtils
;
import
sun.util.calendar.BaseCalendar
;
...
...
@@ -1278,6 +1279,9 @@ public class SimpleTimeZone extends TimeZone {
*/
private
int
serialVersionOnStream
=
currentSerialVersion
;
// Maximum number of rules.
private
static
final
int
MAX_RULE_NUM
=
6
;
synchronized
private
void
invalidateCache
()
{
cacheYear
=
startYear
-
1
;
cacheStart
=
cacheEnd
=
0
;
...
...
@@ -1569,7 +1573,7 @@ public class SimpleTimeZone extends TimeZone {
*/
private
byte
[]
packRules
()
{
byte
[]
rules
=
new
byte
[
6
];
byte
[]
rules
=
new
byte
[
MAX_RULE_NUM
];
rules
[
0
]
=
(
byte
)
startDay
;
rules
[
1
]
=
(
byte
)
startDayOfWeek
;
rules
[
2
]
=
(
byte
)
endDay
;
...
...
@@ -1594,7 +1598,7 @@ public class SimpleTimeZone extends TimeZone {
endDayOfWeek
=
rules
[
3
];
// As of serial version 2, include time modes
if
(
rules
.
length
>=
6
)
{
if
(
rules
.
length
>=
MAX_RULE_NUM
)
{
startTimeMode
=
rules
[
4
];
endTimeMode
=
rules
[
5
];
}
...
...
@@ -1691,9 +1695,13 @@ public class SimpleTimeZone extends TimeZone {
// store the actual rules (which have not be made compatible with 1.1)
// in the optional area. Read them in here and parse them.
int
length
=
stream
.
readInt
();
byte
[]
rules
=
new
byte
[
length
];
stream
.
readFully
(
rules
);
unpackRules
(
rules
);
if
(
length
<=
MAX_RULE_NUM
)
{
byte
[]
rules
=
new
byte
[
length
];
stream
.
readFully
(
rules
);
unpackRules
(
rules
);
}
else
{
throw
new
InvalidObjectException
(
"Too many rules: "
+
length
);
}
}
if
(
serialVersionOnStream
>=
2
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录