Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
c7209913
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看板
提交
c7209913
编写于
10月 16, 2013
作者:
B
bagiras
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2228674: Fix failed for CR 7162144
Reviewed-by: art, anthony
上级
eb3eb786
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
42 deletion
+15
-42
src/share/classes/java/awt/EventDispatchThread.java
src/share/classes/java/awt/EventDispatchThread.java
+13
-32
src/share/classes/java/awt/EventQueue.java
src/share/classes/java/awt/EventQueue.java
+2
-10
未找到文件。
src/share/classes/java/awt/EventDispatchThread.java
浏览文件 @
c7209913
/*
/*
* Copyright (c) 1996, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -25,19 +25,11 @@
...
@@ -25,19 +25,11 @@
package
java.awt
;
package
java.awt
;
import
java.awt.event.InputEvent
;
import
java.awt.event.MouseEvent
;
import
java.awt.event.MouseEvent
;
import
java.awt.event.ActionEvent
;
import
java.awt.event.ActionEvent
;
import
java.awt.event.WindowEvent
;
import
java.awt.event.WindowEvent
;
import
java.lang.reflect.Method
;
import
java.security.AccessController
;
import
sun.security.action.GetPropertyAction
;
import
sun.awt.AWTAutoShutdown
;
import
sun.awt.SunToolkit
;
import
sun.awt.AppContext
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
sun.util.logging.PlatformLogger
;
import
sun.util.logging.PlatformLogger
;
import
sun.awt.dnd.SunDragSourceContextPeer
;
import
sun.awt.dnd.SunDragSourceContextPeer
;
...
@@ -67,8 +59,7 @@ class EventDispatchThread extends Thread {
...
@@ -67,8 +59,7 @@ class EventDispatchThread extends Thread {
private
static
final
PlatformLogger
eventLog
=
PlatformLogger
.
getLogger
(
"java.awt.event.EventDispatchThread"
);
private
static
final
PlatformLogger
eventLog
=
PlatformLogger
.
getLogger
(
"java.awt.event.EventDispatchThread"
);
private
EventQueue
theQueue
;
private
EventQueue
theQueue
;
private
boolean
doDispatch
=
true
;
private
volatile
boolean
doDispatch
=
true
;
private
volatile
boolean
shutdown
=
false
;
private
static
final
int
ANY_EVENT
=
-
1
;
private
static
final
int
ANY_EVENT
=
-
1
;
...
@@ -86,24 +77,15 @@ class EventDispatchThread extends Thread {
...
@@ -86,24 +77,15 @@ class EventDispatchThread extends Thread {
doDispatch
=
false
;
doDispatch
=
false
;
}
}
public
void
interrupt
()
{
shutdown
=
true
;
super
.
interrupt
();
}
public
void
run
()
{
public
void
run
()
{
while
(
true
)
{
try
{
try
{
pumpEvents
(
new
Conditional
()
{
pumpEvents
(
new
Conditional
()
{
public
boolean
evaluate
()
{
public
boolean
evaluate
()
{
return
true
;
return
true
;
}
});
}
finally
{
if
(
getEventQueue
().
detachDispatchThread
(
this
,
shutdown
))
{
break
;
}
}
}
});
}
finally
{
getEventQueue
().
detachDispatchThread
(
this
);
}
}
}
}
...
@@ -130,8 +112,7 @@ class EventDispatchThread extends Thread {
...
@@ -130,8 +112,7 @@ class EventDispatchThread extends Thread {
void
pumpEventsForFilter
(
int
id
,
Conditional
cond
,
EventFilter
filter
)
{
void
pumpEventsForFilter
(
int
id
,
Conditional
cond
,
EventFilter
filter
)
{
addEventFilter
(
filter
);
addEventFilter
(
filter
);
doDispatch
=
true
;
doDispatch
=
true
;
shutdown
|=
isInterrupted
();
while
(
doDispatch
&&
!
isInterrupted
()
&&
cond
.
evaluate
())
{
while
(
doDispatch
&&
!
shutdown
&&
cond
.
evaluate
())
{
pumpOneEventForFilters
(
id
);
pumpOneEventForFilters
(
id
);
}
}
removeEventFilter
(
filter
);
removeEventFilter
(
filter
);
...
@@ -223,12 +204,12 @@ class EventDispatchThread extends Thread {
...
@@ -223,12 +204,12 @@ class EventDispatchThread extends Thread {
}
}
}
}
catch
(
ThreadDeath
death
)
{
catch
(
ThreadDeath
death
)
{
shutdown
=
tru
e
;
doDispatch
=
fals
e
;
throw
death
;
throw
death
;
}
}
catch
(
InterruptedException
interruptedException
)
{
catch
(
InterruptedException
interruptedException
)
{
shutdown
=
tru
e
;
// AppContext.dispose() interrupts all
doDispatch
=
fals
e
;
// AppContext.dispose() interrupts all
// Threads in the AppContext
// Threads in the AppContext
}
}
catch
(
Throwable
e
)
{
catch
(
Throwable
e
)
{
processException
(
e
);
processException
(
e
);
...
...
src/share/classes/java/awt/EventQueue.java
浏览文件 @
c7209913
/*
/*
* Copyright (c) 1996, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -1074,7 +1074,7 @@ public class EventQueue {
...
@@ -1074,7 +1074,7 @@ public class EventQueue {
}
}
}
}
final
boolean
detachDispatchThread
(
EventDispatchThread
edt
,
boolean
forceDetach
)
{
final
void
detachDispatchThread
(
EventDispatchThread
edt
)
{
/*
/*
* Minimize discard possibility for non-posted events
* Minimize discard possibility for non-posted events
*/
*/
...
@@ -1090,17 +1090,9 @@ public class EventQueue {
...
@@ -1090,17 +1090,9 @@ public class EventQueue {
pushPopLock
.
lock
();
pushPopLock
.
lock
();
try
{
try
{
if
(
edt
==
dispatchThread
)
{
if
(
edt
==
dispatchThread
)
{
/*
* Don't detach the thread if any events are pending. Not
* sure if it's a possible scenario, though.
*/
if
(!
forceDetach
&&
(
peekEvent
()
!=
null
))
{
return
false
;
}
dispatchThread
=
null
;
dispatchThread
=
null
;
}
}
AWTAutoShutdown
.
getInstance
().
notifyThreadFree
(
edt
);
AWTAutoShutdown
.
getInstance
().
notifyThreadFree
(
edt
);
return
true
;
}
finally
{
}
finally
{
pushPopLock
.
unlock
();
pushPopLock
.
unlock
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录