8076387: Better CORBA value handling
Reviewed-by: rriggs, coffeys, skoivu, ahgross
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
index f3436b2..c9d6320 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
@@ -1068,6 +1068,9 @@
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
diff --git a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
index 1ca9e11..a8fcb18 100644
--- a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
+++ b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
@@ -559,6 +559,10 @@
* 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;