#76 Marshal error with empty arrays as inout, out argument

closed-fixed
nobody
5
2011-04-15
2007-09-24
Anonymous
No

IIOP.NET is unable to marshal empty arrays of longlong and double datatypes, if the array is defined as a inout- or out-argument or as function return value.

Such calls return with:
CORBA system exception : omg.org.CORBA.MARSHAL, completed: Completed_MayBe minor: 1207

If the array is not empty or the array-argument is defined as in parameter, everything's ok.

Server stack trace:
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.CheckStreamPosition(UInt32 bytesToRead)
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.ReadOctet()
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.ReadPadding(UInt32 nrOfBytes)
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.AlignRead(Byte requiredAlignment)
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.ForceReadAlign(Aligns align)
bei Ch.Elca.Iiop.Cdr.CdrStreamEndianReadOpBase.ReadLongLongArray(Int64[] array)
bei Ch.Elca.Iiop.Cdr.CdrInputStreamImpl.ReadLongLongArray(Int64[] array)
bei Ch.Elca.Iiop.Marshalling.Int64Serializer.DeserializeElementArray(Array toFill, CdrInputStream sourceStream)
bei Ch.Elca.Iiop.Marshalling.IdlSequenceSerializer.Deserialize(CdrInputStream sourceStream)
bei Ch.Elca.Iiop.Marshalling.ArgumentsSerializer.ArgumentMapping.Deserialize(CdrInputStream stream)
bei Ch.Elca.Iiop.Marshalling.ArgumentsSerializer.ArgumentsMapping.DeserialiseResponseArgs(Object[]& outArgs, CdrInputStream sourceStream)
bei Ch.Elca.Iiop.Marshalling.ArgumentsSerializer.DeserializeResponseArgs(String idlMethodName, Object[]& outArgs, CdrInputStream sourceStream)
bei Ch.Elca.Iiop.MessageHandling.GiopMessageBodySerialiser.DeserialiseNormalReply(CdrInputStream cdrStream, GiopVersion version, GiopClientRequest request)
bei Ch.Elca.Iiop.MessageHandling.GiopMessageBodySerialiser.DeserialiseReply(CdrInputStream cdrStream, GiopVersion version, GiopClientRequest request, GiopConnectionDesc conDesc)
bei Ch.Elca.Iiop.MessageHandling.GiopMessageHandler.ParseIncomingReplyMessage(CdrMessageInputStream msgInput, IMethodCallMessage requestMessage, GiopClientConnectionDesc conDesc)
bei Ch.Elca.Iiop.MessageHandling.GiopMessageHandler.ParseIncomingReplyMessage(Stream sourceStream, IMethodCallMessage requestMessage, GiopClientConnectionDesc conDesc)
bei Ch.Elca.Iiop.IiopClientFormatterSink.DeserialiseResponse(Stream responseStream, ITransportHeaders headers, IMessage requestMsg, GiopClientConnectionDesc conDesc)
bei Ch.Elca.Iiop.IiopClientFormatterSink.SyncProcessMessageOnce(IMessage msg, Ior target)
bei Ch.Elca.Iiop.IiopClientFormatterSink.SyncProcessMessage(IMessage msg)

Discussion

  • harsh patki
    harsh patki
    2008-11-29

    Please check request id 2355283.

     
    • status: open --> closed-fixed
     
  • fixed in rev 2018