Oct 26 1999.

Any has no Name


One of the more interesting things tackled was "Any has no Name" This put knots in the vendor's hair. You see it seemed that I wanted to push an object via "type any" to an ORB and then have that ORB push that object further. But there was a problem. On the re-push of the object it seems the "Any" had no name, thus it didn't get pushed correctly and or arrive at the end as a pile of dictionaries, versus that nice shinny object it needed to be.

The problem was that the on the original push a lot of meta information about the object is also transmitted, its Corba Name its type etc etc. All of this fully describes what the object was. In fact it's the ODL definition. Now on the receiver as we read the meta-data if we find existing ODL information then great we just recreate the object using the ODL information and Bindings. If the ODL doesn't exist we get a pile of dictionaries.

Now when we went to push those dictionaries, problem, we've lost all the meta-data! We have no ODL knowledge, so just the dictionaries flow, disaster...

The solution of course was to remember the meta-data for each object in a weak array. On a re-push the marshaller would check for a link back to the remembered meta-data build for incoming anys. If found then the meta-data was restored.