src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java

changeset 231
ff0f02a67881
parent 158
91006f157c46
child 240
f90b3e014e83
equal deleted inserted replaced
230:34af2070439b 231:ff0f02a67881
28 28
29 import com.sun.corba.se.impl.orbutil.ORBConstants; 29 import com.sun.corba.se.impl.orbutil.ORBConstants;
30 import com.sun.corba.se.impl.protocol.giopmsgheaders.Message; 30 import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
31 import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase; 31 import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase;
32 import com.sun.corba.se.impl.protocol.giopmsgheaders.FragmentMessage; 32 import com.sun.corba.se.impl.protocol.giopmsgheaders.FragmentMessage;
33 import com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage;
33 import com.sun.corba.se.impl.encoding.BufferManagerWrite; 34 import com.sun.corba.se.impl.encoding.BufferManagerWrite;
34 import com.sun.corba.se.impl.encoding.ByteBufferWithInfo; 35 import com.sun.corba.se.impl.encoding.ByteBufferWithInfo;
35 import com.sun.corba.se.impl.encoding.CDROutputObject; 36 import com.sun.corba.se.impl.encoding.CDROutputObject;
36 import com.sun.corba.se.spi.orb.ORB; 37 import com.sun.corba.se.spi.orb.ORB;
37 import com.sun.corba.se.pept.transport.Connection; 38 import com.sun.corba.se.pept.transport.Connection;
38 import com.sun.corba.se.pept.encoding.OutputObject; 39 import com.sun.corba.se.pept.encoding.OutputObject;
40 import org.omg.CORBA.SystemException;
39 41
40 /** 42 /**
41 * Streaming buffer manager. 43 * Streaming buffer manager.
42 */ 44 */
43 public class BufferManagerWriteStream extends BufferManagerWrite 45 public class BufferManagerWriteStream extends BufferManagerWrite
64 public void overflow (ByteBufferWithInfo bbwi) 66 public void overflow (ByteBufferWithInfo bbwi)
65 { 67 {
66 // Set the fragment's moreFragments field to true 68 // Set the fragment's moreFragments field to true
67 MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT); 69 MessageBase.setFlag(bbwi.byteBuffer, Message.MORE_FRAGMENTS_BIT);
68 70
69 sendFragment(false); 71 try {
72 sendFragment(false);
73 } catch(SystemException se){
74 orb.getPIHandler().invokeClientPIEndingPoint(
75 ReplyMessage.SYSTEM_EXCEPTION, se);
76 throw se;
77 }
70 78
71 // Reuse the old buffer 79 // Reuse the old buffer
72 80
73 // REVISIT - need to account for case when needed > available 81 // REVISIT - need to account for case when needed > available
74 // even after fragmenting. This is the large array case, so 82 // even after fragmenting. This is the large array case, so

mercurial