[omniORB] CorbaScript on omniORB2
Philippe.Merle@lifl.fr
Philippe.Merle@lifl.fr
Tue, 20 Jul 1999 17:55:14 +0200 (MET DST)
Hello David,
> From djr@uk.research.att.com Tue Jul 20 16:25:12 1999
> Subject: Re: [omniORB] CorbaScript on omniORB2
>
> Hi,
>
> > * Have you plan to implement the Interface Repository?
> > Currently I use the IFR provided by ORBacus and this works.
>
> No plans. We also use other peoples interface repositories.
OK, it is not an issue for porting CorbaScript.
> > * Why is it not possible to insert a nil object reference into a DynAny?
> > See the following patch:
>
> Good question. I have no idea why I did this ... so I'll accept your
> patch! Thanks.
Great:-)
> > * Why is it not possible to create a DynAny with a IDL void type?
> > See the following patch:
>
> Accepted.
Great:-)
> > * Is it normal that a subclass of CORBA::BOA::DynamicImplementation
> > must handle "_is_a" CORBA calls into the implementation of the
> > invoke() method?
>
> Our current implementation of the DSI is based loosely on CORBA 2.2, but
> was written for a CORBA 2.0 ORB. In CORBA 2.0 the DSI is not very clearly
> specified. In CORBA 2.2 I think you should handle _is_a() by overriding
> ServantBase's version. However as our version is not built on top of
> ServantBase (because we don't yet have a POA) we can't do that. Thus I
> have given the application the opportunity to handle _is_a. If you
> don't want to handle it you are very welcome to throw BAD_OPERATION from
> your invoke() routine -- in which case the default version will be used.
> I'm not sure that this would be very useful though...
>
> When we have a POA it will use the 'normal' semantics.
OK, it is not an issue for CorbaScript, I already manage the _is_a lookup.
> > * How can I narrow an object reference to a DynamicImplementation
> >subclass instance?
> > I would like to write the following:
> >
> > class MyDSI : public CORBA::BOA::DynamicImplementation {
> > public:
> > ........
> > static MyDSI* _narrow(CORBA::Object_ptr o) { ???? }
> > };
>
> You can't do this, and I personally think it would not be a good idea.
> Object references are fundamentally opaque.
Yes, I agree with you but I need something like that. Anyway, I will find another
solution to deal with my need:-)
> > Why the DynamicImplementation doesn't directly inherit from omniObject and
> > CORBA::Object classes?
> > I have seen that you use a delegation pattern with the internal
> > DsiObject, isn't it?
>
> My way encapsulates the implementation better. Object implementations
> and object references are not the same thing -- so there is no reason why
> DynamicImplementation should inherit from CORBA::Object.
OK, this is your implementation choice.
Note that this is the first ORB where I see this choice, on other ORBs where
CorbaScript runs the DynamicImplementation class inherits from the CORBA::Object.
So anyway I will deal with your choice:-)
> > * Here is a report bug:
> >
> > unix> cssh
> > CorbaScript 1.3.1 (Jul 20 1999) for omniORB2 for C++
> > Copyright 1996-99 LIFL, France
> > >>> TestCS.SeqShort
> > < OMG-IDL typedef sequence<short> TestCS::SeqShort; >
> > >>> TestCS.SeqShort(1,2,3,4,5,6)
> > Caught omniORB2 fatalException. This indicates a bug is caught within omniORB2.
> > Please send a bug report.
> > The exception was thrown in file: ../typecode.cc
> > line: 949
> > The error message is: TypeCode_base::NP_aliasExpand() - should not
> > have been called
> > unix>
> >
> > I have this report several times in my demonstration.
>
> Could you try and get me a stack trace, or give me a minimal example?
The following is a stack trace:
(dbx) where -h
current thread: t@1
=>[1] TypeCode_base::NP_aliasExpand(this = ???, _ARG1 = ???) (optimized), at 0xff1743f0 (line ~948) in "typecode.cc"
[2] TypeCode_sequence::NP_aliasExpand(this = ???, tcpl = ???) (optimized), at 0xff175e48 (line ~1647) in "typecode.cc"
[3] TypeCode_alias::NP_aliasExpand(this = ???, tcpl = ???) (optimized), at 0xff1755b4 (line ~1424) in "typecode.cc"
[4] TypeCode_base::aliasExpand(tc = ???) (optimized), at 0xff174488 (line ~959) in "typecode.cc"
[5] CORBA::ORB::create_dyn_sequence(this = ???, tc = ???) (optimized), at 0xff191db0 (line ~3270) in "dynAny.cc"
After it is the stack trace for CorbaScript.
Currently, I don't have a minimal example that illustrates this problem.
I will try to make it.
> Excellent. Let us know when it is ready for others to use, and I'll put a
> link up on our site.
ASAP
> Cheers,
> David
A+
Philippe Merle
--
________________________________________________________________________________
Philippe Merle
Universite des Sciences et Technologies de Lille
URA 369 CNRS
Laboratoire d'Informatique Fondamentale de Lille Tel: (33) 03 20 43 47 21
U.F.R. I.E.E.A. batiment M3 Fax: (33) 03 20 43 65 66
59655 Villeneuve d'Ascq CEDEX France E-Mail: merle@lifl.fr
Web: http://www.lifl.fr/~merle
________________________________________________________________________________