Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
dde7d03d
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
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,发现更多精彩内容 >>
提交
dde7d03d
编写于
10月 09, 2009
作者:
A
alanb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6888552: Allow JNDI to be used when java.applet is not present
Reviewed-by: vinnie
上级
6829d886
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
50 addition
and
3 deletion
+50
-3
src/share/classes/com/sun/naming/internal/ResourceManager.java
...hare/classes/com/sun/naming/internal/ResourceManager.java
+50
-3
未找到文件。
src/share/classes/com/sun/naming/internal/ResourceManager.java
浏览文件 @
dde7d03d
...
...
@@ -25,11 +25,12 @@
package
com.sun.naming.internal
;
import
java.applet.Applet
;
import
java.io.InputStream
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.lang.ref.WeakReference
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.Enumeration
;
import
java.util.HashMap
;
import
java.util.Hashtable
;
...
...
@@ -112,6 +113,52 @@ public final class ResourceManager {
private
static
final
WeakHashMap
urlFactoryCache
=
new
WeakHashMap
(
11
);
private
static
final
WeakReference
NO_FACTORY
=
new
WeakReference
(
null
);
/**
* A class to allow JNDI properties be specified as applet parameters
* without creating a static dependency on java.applet.
*/
private
static
class
AppletParameter
{
private
static
final
Class
<?>
clazz
=
getClass
(
"java.applet.Applet"
);
private
static
final
Method
getMethod
=
getMethod
(
clazz
,
"getParameter"
,
String
.
class
);
private
static
Class
<?>
getClass
(
String
name
)
{
try
{
return
Class
.
forName
(
name
,
true
,
null
);
}
catch
(
ClassNotFoundException
e
)
{
return
null
;
}
}
private
static
Method
getMethod
(
Class
<?>
clazz
,
String
name
,
Class
<?>...
paramTypes
)
{
if
(
clazz
!=
null
)
{
try
{
return
clazz
.
getMethod
(
name
,
paramTypes
);
}
catch
(
NoSuchMethodException
e
)
{
throw
new
AssertionError
(
e
);
}
}
else
{
return
null
;
}
}
/**
* Returns the value of the applet's named parameter.
*/
static
Object
get
(
Object
applet
,
String
name
)
{
// if clazz is null then applet cannot be an Applet.
if
(
clazz
==
null
||
!
clazz
.
isInstance
(
applet
))
throw
new
ClassCastException
(
applet
.
getClass
().
getName
());
try
{
return
getMethod
.
invoke
(
applet
,
name
);
}
catch
(
InvocationTargetException
e
)
{
throw
new
AssertionError
(
e
);
}
catch
(
IllegalAccessException
iae
)
{
throw
new
AssertionError
(
iae
);
}
}
}
// There should be no instances of this class.
private
ResourceManager
()
{
...
...
@@ -143,7 +190,7 @@ public final class ResourceManager {
if
(
env
==
null
)
{
env
=
new
Hashtable
(
11
);
}
Applet
applet
=
(
Applet
)
env
.
get
(
Context
.
APPLET
);
Object
applet
=
env
.
get
(
Context
.
APPLET
);
// Merge property values from env param, applet params, and system
// properties. The first value wins: there's no concatenation of
...
...
@@ -157,7 +204,7 @@ public final class ResourceManager {
Object
val
=
env
.
get
(
props
[
i
]);
if
(
val
==
null
)
{
if
(
applet
!=
null
)
{
val
=
applet
.
getParameter
(
props
[
i
]);
val
=
AppletParameter
.
get
(
applet
,
props
[
i
]);
}
if
(
val
==
null
)
{
// Read system property.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录