This fixes a failure when used with JacORB:
org.omg.CORBA.NO_IMPLEMENT: Minor: 0 (0). Completed: not completed
at org.omg.CORBA.portable.OutputStream.write(OutputStream.java:90)
at java.io.OutputStream.write(OutputStream.java:110)
at java.io.OutputStream.write(OutputStream.java:86)
at org.omg.IOP.TaggedComponentHelper.write(TaggedComponentHelper.java:169)
This happens because org.omg.CORBA.portable.OutputStream.write mustn't
be called:
public void write(int n)
throws IOException
{
throw new NO_IMPLEMENT();
}
We can easily fix this by calling write_octet_array(), not write().
Andrew.
2007-04-11 Andrew Haley <[EMAIL PROTECTED]>
* org/omg/IOP/TaggedComponentHelper.java (read): Use
read_octet_array(), not read().
(write): Use write_octet_array(), not write().
Index: omg/IOP/TaggedComponentHelper.java
===================================================================
--- omg/IOP/TaggedComponentHelper.java (revision 123473)
+++ omg/IOP/TaggedComponentHelper.java (working copy)
@@ -136,18 +136,9 @@
{
TaggedComponent value = new TaggedComponent();
value.tag = input.read_long();
- value.component_data = new byte[input.read_long()];
- try
- {
- input.read(value.component_data);
- }
- catch (IOException e)
- {
- MARSHAL m = new MARSHAL();
- m.minor = Minor.Encapsulation;
- m.initCause(e);
- throw m;
- }
+ int length = input.read_long();
+ value.component_data = new byte[length];
+ input.read_octet_array(value.component_data, 0, length);
return value;
}
@@ -163,17 +154,6 @@
{
output.write_long(value.tag);
output.write_long(value.component_data.length);
-
- try
- {
- output.write(value.component_data);
- }
- catch (IOException e)
- {
- MARSHAL m = new MARSHAL();
- m.minor = Minor.Encapsulation;
- m.initCause(e);
- throw m;
- }
+ output.write_octet_array(value.component_data, 0,
value.component_data.length);
}
}