[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
________________________________________________________________________________