提交 af10378d 编写于 作者: A asaha

Merge

......@@ -401,6 +401,11 @@ c9bf2543c0c045ef31f0296bc355381e1a4bd4ac jdk8u45-b12
4afc048fe6ff7fc3fdbdadd8027549805c426d0d jdk8u45-b15
e67045c893eaf5e3336c4fd849786fa15b81b601 jdk8u45-b31
f2aeb52cb7cef1f984661a583baac67402f633a5 jdk8u45-b32
e26a2620b5d206837fedab74fc84f068c7f47fa2 jdk8u45-b33
c1399b5a4592414a8b8e6f64be019e8cf1f46074 jdk8u45-b34
2f010018174e90b8673e5c4a3cdfed0a3c4c2fe2 jdk8u45-b35
e953ae033f0c530f3588df430589582b6b7108d7 jdk8u45-b36
883940e19107877d2b8c486b003253d2433fd59d jdk8u45-b37
72d116eea419824044f8dd4ae9d3a012946f72a4 jdk8u51-b00
b9638b9fe23876fd2413f336ee1d4e05d409e6a9 jdk8u51-b01
bc5562ed3c2d69ffbff357e96d9e383479042000 jdk8u51-b02
......@@ -418,6 +423,7 @@ e51a2deadf774452d98b339d65d33c72a466a453 jdk8u51-b12
1fbfa02e524872a75e98ee3a80e2472fa7012fde jdk8u51-b14
d6e1f914c954f98caa31edd0037837830774dfb6 jdk8u51-b15
3b9b39af6c36216418b78c449dd3af17b865a952 jdk8u51-b16
5980dad8f264bb5ec3982d64a7c0af86fc5b3d16 jdk8u51-b31
8bbc2bb414b7e9331c2014c230553d72c9d161c5 jdk8u60-b00
15ae8298b34beb30f2bd7baa7ff895af2bec13f6 jdk8u60-b01
a98524c04cbd24bbc3029b21c033abf9108e92b4 jdk8u60-b02
......@@ -443,7 +449,37 @@ d68de92de3bad991546b11d77de6e9c17edf7ec2 jdk8u60-b21
3a04901d83880634ecd70c8be992189228ccd746 jdk8u60-b22
0828bb6521738ad5a7fe11f0aa3495465f002848 jdk8u60-b23
b0779099d006fcb2a0af493e2a2f828411bfad33 jdk8u60-b24
c665dd5d32b04c1dbc2cf21a595fe73330849c03 jdk8u60-b25
7828b9af7733eeaf2cafa8e05e68a2661dc3c7a8 jdk8u60-b26
be922f27d05991e3099f42988b8ea4ad89809749 jdk8u60-b27
8e247b5216a5a4623c1bef7331585d78e7c0fb15 jdk8u52-b06
974e2fd9b5b3cec38cceb35c93bcc3b5bedbe91c jdk8u52-b07
8e247b5216a5a4623c1bef7331585d78e7c0fb15 jdk8u65-b00
31ceb15b19bee8e02aa2cf4be5c3f147ad6afb22 jdk8u65-b01
4c8bc7757f825f9fe0806fa13f0fe85b1a20982a jdk8u65-b02
7a98523691a9657d4f5ecf8fb71476cecc6d5c4d jdk8u65-b03
771cf2ce97e332e1ecffe4818d0fbe77f11e28a2 jdk8u65-b04
5b6ff67eed5f25cc710a53026e706597c9193f56 jdk8u65-b05
05084f644c07a81e2b246db38917df253f5e2882 jdk8u65-b06
bc23767d08cf1e2ba8793106882a3ec9b926d9e0 jdk8u65-b07
cc1eef73fb58c59317a0be13f31ef7a77b46b8e3 jdk8u65-b08
db639a8f026b01059114cd32d9e44dfad2b55de0 jdk8u65-b09
98ad80b71e1fb5c3343c33dffd40e9e92e65f087 jdk8u65-b10
98ad80b71e1fb5c3343c33dffd40e9e92e65f087 jdk8u65-b10
0000000000000000000000000000000000000000 jdk8u65-b10
0000000000000000000000000000000000000000 jdk8u65-b10
6b5f81fcbdde7bca924364448e7d98912992ac2f jdk8u65-b10
2dcd36bfa8a4e5d789cd86ee24bdc1045bac4e06 jdk8u65-b11
55f0343bcba5f486f955ffe7b25aac261c0003b4 jdk8u65-b12
d7ec3a9f57de2e6c403410f7b45aa69171f18892 jdk8u65-b13
3a04901d83880634ecd70c8be992189228ccd746 jdk8u66-b00
3717d70ac87f5e5579e540cd990b4e958c5990a4 jdk8u66-b01
15851994f9f81f6de37b63683c8cd9b19ae90ed1 jdk8u66-b02
8e9e5c715064a55865975ec3626b17e0439613c7 jdk8u66-b07
6802a364b568ce4f4398c0fc90ee0f675337a3c2 jdk8u66-b08
81d11adaf5aa0b37ffabf45fbeb8fa19f13de596 jdk8u66-b09
12e44aa2069b20ecbff03285dea4681325b9c05f jdk8u66-b10
ebe5ae51f625a9d3f5e1aac835a416502c71a4a0 jdk8u66-b11
3acb9f1828c5e9ed64a45c0101d1c59d1e784ee0 jdk8u66-b12
f71aabee169f8342298e38923848bdb863c0f37a jdk8u66-b13
81296d52090354da1eb9748d63a29d30bb1230f7 jdk8u72-b00
......@@ -567,6 +567,11 @@ public class IIOPInputStream
// XXX I18N, logging needed.
throw new NotActiveException("defaultReadObjectDelegate");
if (!currentClassDesc.forClass().isAssignableFrom(
currentObject.getClass())) {
throw new IOException("Object Type mismatch");
}
// The array will be null unless fields were retrieved
// remotely because of a serializable version difference.
// Bug fix for 4365188. See the definition of
......@@ -1063,6 +1068,9 @@ public class IIOPInputStream
int spBase = spClass; // current top of stack
if (currentClass.getName().equals("java.lang.String")) {
return this.readUTF();
}
/* The object's classes should be processed from supertype to subtype
* Push all the clases of the current object onto a stack.
* Note that only the serializable classes are represented
......@@ -2257,6 +2265,27 @@ public class IIOPInputStream
try {
Class fieldCl = fields[i].getClazz();
if ((objectValue != null)
&& (!fieldCl.isAssignableFrom(
objectValue.getClass()))) {
throw new IllegalArgumentException("Field mismatch");
}
Field classField = null;
try {
classField = cl.getDeclaredField(fields[i].getName());
} catch (NoSuchFieldException nsfEx) {
throw new IllegalArgumentException(nsfEx);
} catch (SecurityException secEx) {
throw new IllegalArgumentException(secEx.getCause());
}
Class<?> declaredFieldClass = classField.getType();
// check input field type is a declared field type
// input field is a subclass of the declared field
if (!declaredFieldClass.isAssignableFrom(fieldCl)) {
throw new IllegalArgumentException(
"Field Type mismatch");
}
if (objectValue != null && !fieldCl.isInstance(objectValue)) {
throw new IllegalArgumentException();
}
......
......@@ -559,6 +559,10 @@ public class IIOPOutputStream
* Push all the clases of the current object onto a stack.
* Remember the stack pointer where this set of classes is being pushed.
*/
if (currentClassDesc.forClass().getName().equals("java.lang.String")) {
this.writeUTF((String)obj);
return;
}
int stackMark = classDescStack.size();
try {
ObjectStreamClass next;
......
#
# Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 2015, 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
......@@ -62,7 +62,7 @@ servertool.getserverid2=\tID do Servidor de applicationName {0} \u00E9 {1}
servertool.list=\n\tlist\n
servertool.list1=lista todos os servidores registrados
servertool.list2=\n\tId do Servidor\tNome de Classe do Servidor\t\tAplica\u00E7\u00E3o do Servidor\n\t---------\t-----------------\t\t------------------\n
servertool.list2=\n\tId do Servidor\tNome de Classe do Servidor\t\tAplicativo do Servidor\n\t---------\t-----------------\t\t------------------\n
servertool.listactive=\n\tlistactive
servertool.listactive1=lista os servidores atualmente ativos
servertool.listappnames=\tlistappnames\n
......
......@@ -446,6 +446,9 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
if (emitPermissionCheck) {
// produce the following generated code for example
//
// private transient boolean _instantiated = false;
//
// private static Void checkPermission() {
// SecurityManager sm = System.getSecurityManager();
// if (sm != null) {
......@@ -460,11 +463,21 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
//
// public _XXXXX_Stub() {
// this(checkPermission());
// _instantiated = true;
// }
//
// private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException {
// checkPermission();
// s.defaultReadObject();
// _instantiated = true;
// }
//
// where XXXXX is the name of the remote interface
p.pln();
p.plnI("private transient boolean _instantiated = false;");
p.pln();
p.pO();
p.plnI("private static Void checkPermission() {");
p.plnI("SecurityManager sm = System.getSecurityManager();");
p.pln("if (sm != null) {");
......@@ -481,13 +494,23 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
p.pO();
p.pI();
p.pln("private " + currentClass + "(Void ignore) { }");
p.plnI("private " + currentClass + "(Void ignore) { }");
p.pln();
p.pO();
p.plnI("public " + currentClass + "() { ");
p.plnI("public " + currentClass + "() {");
p.pln("this(checkPermission());");
p.pln("_instantiated = true;");
p.pOln("}");
p.pln();
p.plnI("private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException {");
p.plnI("checkPermission();");
p.pO();
p.pln("s.defaultReadObject();");
p.pln("_instantiated = true;");
p.pOln("}");
p.pln();
//p.pO();
}
if (!emitPermissionCheck) {
......@@ -894,6 +917,7 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
String paramNames[] = method.getArgumentNames();
Type returnType = method.getReturnType();
ValueType[] exceptions = getStubExceptions(method,false);
boolean hasIOException = false;
addNamesInUse(method);
addNameInUse("_type_ids");
......@@ -921,6 +945,13 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
p.plnI(" {");
// Now create the method body...
if (emitPermissionCheck) {
p.pln("if ((System.getSecurityManager() != null) && (!_instantiated)) {");
p.plnI(" throw new java.io.IOError(new java.io.IOException(\"InvalidObject \"));");
p.pOln("}");
p.pln();
}
if (localStubs) {
writeLocalStubMethodBody(p,method,theType);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册