[PolyORB-users] [DSA] trying to resolve record + string bug

xavier grave xavier.grave at ipno.in2p3.fr
Wed Jul 30 10:54:12 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I'm still trying to solve the following bug :
DSA personality can't return this kind of record :
type a_record is record
    data : String (1 .. 10) := (others => '*');
end record;

The bug is raised by the following code in polyorb-any.ads

the CA_Ptr is null and so the CA_PTR.all raise a CONSTRAINT_ERROR

procedure Add_Aggregate_Element
  (Value   : in out Any;
   Element : Any)
is
   CA_Ptr : constant Aggregate_Content_Ptr :=
     Aggregate_Content_Ptr (Get_Container (Value).The_Value);
begin
    -- new code and debug pragma
   pragma Debug (C, O ("xxxxxxx " & Image (Value)));
   declare
      Kind_Loc : constant TCKind := TypeCode.Kind
        (Get_Type_Obj (Get_Container (Value).all));
      Kind_Loc2 : constant TCKind := TypeCode.Kind
        (Get_Type_Obj (Get_Container (Element).all));
   begin
      pragma Debug (C, O ("yyyyyyy " & Kind_Loc'Img & " " & Kind_Loc2'Img));
      null;
   end;
   --  end of the new code added
   pragma Debug (C, O ("Add_Aggregate_Element: enter"));
   Add_Aggregate_Element (CA_Ptr.all, Get_Container (Element));
   pragma Debug (C, O ("Add_Aggregate_Element: end"));
end Add_Aggregate_Element;

On my way to find the bug the code I have added seems to show that Value
should be a kind of TK_SEQUENCE or TK_STRUCT
when the bug arrive the kind value is TK_STRING
Here is what I get from a grep on the server output :
polyorb.any: yyyyyyy TK_SEQUENCE TK_ULONG
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_SEQUENCE TK_STRUCT
polyorb.any: yyyyyyy TK_SEQUENCE TK_ULONG
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_SEQUENCE TK_STRUCT
polyorb.any: yyyyyyy TK_SEQUENCE TK_ULONG
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_SEQUENCE TK_STRUCT
polyorb.any: yyyyyyy TK_SEQUENCE TK_ULONG
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_SEQUENCE TK_STRUCT
polyorb.any: yyyyyyy TK_STRUCT TK_ALIAS
polyorb.any: yyyyyyy TK_STRING TK_LONG
polyorb.any: yyyyyyy TK_EXCEPT TK_STRING

The exception raised when I have polyorb.any: yyyyyyy TK_STRING TK_LONG

I'm looking for the place this procedure is called without success for
the moment. Do any polyorb developer have an idea where I can find this
call ?

Thanks in advance, xavier
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkiQLDAACgkQVIZi0A5BZF7QxgCfUydLsOBdwyyrSNhHVGIsAhdV
DuMAn2iLCLJGe45oxynFsEAdjlmyeHyU
=M+63
-----END PGP SIGNATURE-----


More information about the PolyORB-users mailing list