Release Notes

What's new?

What changed?

Improved Features
  • Adjustment to show expections correctly when using function oil.main.
  • New field reqcli.profile_data in intercepted client request that contains provides the encoded profile used for connection. Old field profile_data with the decoded profile information was renamed to reqcli.profile.
  • Adjustments in the way CORBA interceptor methods are invoked in case the request is forwarded. Now, every time an interceptor forwards a request, the interceptor methods are invoked again for the forwarded request.
  • Field request.service_context of CORBA intercepted requests becomes a map instead of an array to adhere better to the limitations imposed by the CORBA Portable Interceptors. In particular, to avoid the application to send more than one service context with the same ID (tag).
  • Add support for binary files in functions oil.readfrom and oil.writeto.
  • New parameter to define IDL include paths in IDL parsing functions (see orb:loadidl and orb:loadidlfile)
  • It is not necessary to invoke orb:run to start processing incoming requests with brokers with multithreding support (i.e. flavor contains word cooperative).
  • Operation orb:shutdown must be called before the application ends. Otherwise an internal thread that process incoming requests will keep executing and the application will not terminate even if all other application threads terminate.
Removed/Deprecated Features
  • Field oil.tasks was replaced by module cothread.
  • Function oil.pcall was replaced by standard pcall (f [, arg1, ···]) function.
  • Method orb:tostring was replaced by standard tostring (v) function.
  • CORBA configuration options were removed:
    • tag
    • refhost
    • refport
Bug Fixes
  • Bugfix to avoid parsing alphanumeric constant on IDL as numeric.
  • Bugfix to avoid that fails due to error on establishing incomming connection from bogus remote clients.
  • Bugfix in parsing of IDL constants.
  • Bugfix to allow typedef definitions of ValueTypes in IDL.
  • Bugfix to avoid creation of servants with interface CORBA::Object.
  • Bugfix to avoid creation of servants with abstract interfaces.
  • Bugfix to avoid sending values marshaled as abstract valuetypes.
  • Bugfix to catch LuDO mashaling errors.
  • Bugfix to allow client interceptors to forward invocations in the 'receivereply' operation.
  • Bugfix to capture errors raised in the CORBA interceptor methods and forward them to the application as servant errors.
  • Bugfix to allow that operation descriptors of attribute functions (_get_* and _set_*) have a field defined_in with the interface the attribute is defined. This is used in the CORBA interception mechanism to provide the interface where the attribute is defined.
  • Bugfix to allow a CORBA server interceptor to send a service context to the client in a cancelled request.
  • Bugfix to avoid index operations with the name of IDL attributes in proxies.
  • Bugfix to avoid stop processing channels that receive message of a unsupported GIOP version.
  • Bugfix to sinalize error on corbaloc parsing.
  • Bugfix to avoid unecessary DNS lookups on IP addresses, because LuaSocket's 'socket.dns.toip' causes DNS lookups to obtain information not used by OiL when resolving connections.
  • Bugfix to avoid that bogus RMI (GIOP) messages halt the processing of incomming requests.
  • Bugfix in LuaIDL to output the proper type information of multiple attributes declared in one single line declaration.
  • Bugfix to provide the proper minor code when an expected exception is caught by the ORB during a request dispatch.
  • Bugfix to allow marshalling of numbers as enumerations.
  • Bugfix to avoid that multiple connections to a same destination when there are simultaneous threads performing invocations to the same destination.
  • Bugfix to avoid get a erro due to missing packages when 'package.path' contains a pattern without a '?'.

Copyright (C) 2004-2014 Tecgraf, PUC-Rio

This project is currently being maintained by Tecgraf at PUC-Rio.