8076376: Enhance IIOP operations
Reviewed-by: rriggs, coffeys, ahgross, skoivu
This commit is contained in:
parent
7c256783a5
commit
233f940f00
@ -2430,8 +2430,8 @@ public class IIOPInputStream
|
||||
private void throwAwayData(ValueMember[] fields,
|
||||
com.sun.org.omg.SendingContext.CodeBase sender)
|
||||
throws InvalidClassException, StreamCorruptedException,
|
||||
ClassNotFoundException, IOException
|
||||
{
|
||||
ClassNotFoundException, IOException {
|
||||
|
||||
for (int i = 0; i < fields.length; ++i) {
|
||||
|
||||
try {
|
||||
@ -2566,8 +2566,7 @@ public class IIOPInputStream
|
||||
|
||||
}
|
||||
|
||||
private static void setObjectField(Object o, Class c, String fieldName, Object v)
|
||||
{
|
||||
private static void setObjectField(Object o, Class c, String fieldName, Object v) {
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
Class fieldCl = fld.getType();
|
||||
@ -2577,9 +2576,15 @@ public class IIOPInputStream
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putObject( o, key, v ) ;
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetObjectField( e, fieldName,
|
||||
o.toString(),
|
||||
v.toString() ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetObjectField( e, fieldName,
|
||||
o.toString(),
|
||||
v.toString() ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetObjectField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
v.toString() ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2587,12 +2592,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putBoolean( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Boolean.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putBoolean( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetBooleanField( e, fieldName,
|
||||
o.toString(),
|
||||
new Boolean(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetBooleanField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Boolean(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2600,12 +2615,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putByte( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Byte.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putByte( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetByteField( e, fieldName,
|
||||
o.toString(),
|
||||
new Byte(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetByteField( e, fieldName,
|
||||
o.toString(),
|
||||
new Byte(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetByteField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Byte(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2613,12 +2638,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putChar( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Character.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putChar( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetCharField( e, fieldName,
|
||||
o.toString(),
|
||||
new Character(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetCharField( e, fieldName,
|
||||
o.toString(),
|
||||
new Character(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetCharField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Character(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2626,12 +2661,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putShort( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Short.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putShort( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetShortField( e, fieldName,
|
||||
o.toString(),
|
||||
new Short(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetShortField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Short(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2639,12 +2684,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putInt( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Integer.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putInt( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetIntField( e, fieldName,
|
||||
o.toString(),
|
||||
new Integer(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetIntField( e, fieldName,
|
||||
o.toString(),
|
||||
new Integer(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetIntField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Integer(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2652,12 +2707,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putLong( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Long.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putLong( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetLongField( e, fieldName,
|
||||
o.toString(),
|
||||
new Long(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetLongField( e, fieldName,
|
||||
o.toString(),
|
||||
new Long(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetLongField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Long(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2665,12 +2730,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putFloat( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Float.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putFloat( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetFloatField( e, fieldName,
|
||||
o.toString(),
|
||||
new Float(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetFloatField( e, fieldName,
|
||||
o.toString(),
|
||||
new Float(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetFloatField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Float(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2678,12 +2753,22 @@ public class IIOPInputStream
|
||||
{
|
||||
try {
|
||||
Field fld = c.getDeclaredField( fieldName ) ;
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putDouble( o, key, v ) ;
|
||||
if ((fld != null) && (fld.getType() == Double.TYPE)) {
|
||||
long key = bridge.objectFieldOffset( fld ) ;
|
||||
bridge.putDouble( o, key, v ) ;
|
||||
} else {
|
||||
throw new InvalidObjectException("Field Type mismatch");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw utilWrapper.errorSetDoubleField( e, fieldName,
|
||||
o.toString(),
|
||||
new Double(v) ) ;
|
||||
if (o != null) {
|
||||
throw utilWrapper.errorSetDoubleField( e, fieldName,
|
||||
o.toString(),
|
||||
new Double(v) ) ;
|
||||
} else {
|
||||
throw utilWrapper.errorSetDoubleField( e, fieldName,
|
||||
"null " + c.getName() + " object",
|
||||
new Double(v) ) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user