OpenORB
-------

Version 1.4.0 - March, 28 2005 - OpenORB_1_4_0_RELEASE

- Fixed a NPE in the compiler (regression between 1.3.1 and 1.4.0 beta2).
  See http://marc.theaimsgroup.com/?l=openorb-devel&m=111073137117247&w=2
  for a complete problem description.

- Replaced usage of inherited fields 'project' and 'location' in compiler
  Task implementations with accessor methods.

- Implemented a deserialization kernel for Java 1.5 (Sun). As the reflection 
  API has been enhanced to allow final fields to be set by setting the 
  accessible property on the field object, the only remaining vendor specific 
  hack is for the creation of Serializable objects where an object has to be 
  created using the no-arg constructor of the first non Serializable super 
  class. The current implementation uses the package local 
  ObjectStreamClass.newInstance() method (via reflection) for this purpose.
  This kernel should work on all 1.5 platforms which provide this method.

- Reimplemented LazyInitDeserializationKernel to use a thread safe lockless
  lazy singleton to remove the need to synchronize all calls. 

- removed reference to the JDK tools.jar from build.xml
  to allow compilation on OSX

- The value of boolean properties must now be one of true, false, yes,
  no, on, off. Other values are no longer recognized and will lead to
  INITIALIZE exceptions.

- Replaced boolean property iiop.useNativeLibrary with a new
  property iiop.deserializationEngine to control the engine 
  used for RMI/IIOP valuetype deserialization. Possible
  values are 'auto' (VM dependent engine, some VMs currently 
  not supported), native (use native code from openorb's native 
  module) and none (runtime errors when trying to use RMI/IIOP
  deserialization). If the value is prefixed with 'lazy:' the 
  desrialization engine will be created on demand.  
  For a more detailed descriptions of the available options
  please see default.xml.

- Fixed NPE in commandline parsing of IdlDoc tool.

- Extended the test case FragmentedMessageTest to include
  a simple check whether the returnedd array is not missing
  any of the data previously read from the XML file.

- Fixed a NPE in the ValueHandlerImpl class that occured
  when the logger has not been set.

- Fixed some typos and improved some exception messages.

- Added general method isGIOPHeaderOK to the Trace class.
  This method gets called from StorageBuffer.writeTo()
  method to make sure that we do not send buffers that
  will be rejected by the client.

- Added documentation to the Scrap class to clarify its pupose.

- Calls to MarshalBuffer.Listener instances have been wrapped
  with try-finally blocks in order to get the flags reset
  correctly in case of a problem in the listener code.

- Fixed a bug in StorageBuffer.linearize() that seems to have
  existed for quite some time now. At least the file has not
  been changed since our code takeover of the Exolab codebase.
  The linearize() method is called from the Trace class only
  when debugging has been enabled. A call to linearize() was
  creating one huge buffer in the head Scrap element instead
  of having a lot of smaller buffers distributed over many
  Scrap instances in the singly linked Scrap list.
  When the last fragment was sent the buffer created had the
  size of the whole message, because the call to
  MarshalBuffer.lastFragment() was passing a wrong length
  to the StorageBuffer instance created by this method.
  The linearize() method was using the wrong offset for
  consolidating the small arrays into the large so that
  the 'GIOP' started at the overall position of all fragments.
  The client receives the message and sees that the first four
  do not have the 'GIOP' pattern and thus was throwing a
  "Bad Magic" MARSHAL exception.
  In most of the cases when debugging was enabled the linearize()
  method was just returning null because of an internal
  ArrayIndexOutOfBoundsException that had not been shown.
  The problem in this case was that the IIOP message buffer was
  not shown in debug output.

- Improved logging and exception messages for the MarshalBuffer
  and some related classes.
  The problem is that the MarshalBuffer class is a critical
  component and no logging should slow down its operation.
  Therefore I added a new flag: 'openorb.debug.enabled'
  It can be used by performance critical classes to make the JIT
  completely remove the logging statements at runtime.
  The flag must be set like this:

     private static final boolean DEBUG_ENABLED =
            Boolean.getBoolean( "openorb.debug.enabled" );

  A logger statement can then be wrapped like this:

    if ( DEBUG_ENABLED
          && getLogger().isDebugEnabled() && Trace.isMedium() )
    {
        getLogger().debug( "Blablabla" );
    }

  The consequence of this mechanism is that the JIT can completely
  remove the logging statement as it is clear that the if statement
  can never become true.
  The downside is that we have another debug flag that must be set
  in order to see the debug messages.

- Added a test case for a fragmentation bug. Contributed by
  Michael C. Macaluso (michael _dot_ macaluso _at_ wavecorp _dot_ com)

Version 1.4.0 BETA2 - July, 29 2004 - OpenORB_1_4_0_BETA2

- Fixed bug #955143. The problem of marshaling the array type
  org.omg.CORBA.Any[] was due to a different behaviour of the parser
  in the simple case (org.omg.CORBA.Any) and the array type.
  This problem only appeared when org.omg.CORBA.Any has not
  been parsed before. But our test case RemoteComplex has another
  method that just uses the type org.omg.CORBA.Any so that this bug
  never showed up under UNIX. Only Windows uncovered the problem
  but it is still not known what the difference between the Windows
  VM and the UNIX VMs was.

- Always use the native library on AIX with VM 1.4.x.

- When setting the property UtilDelegateImpl.setLocalCodebaseOnly(true)
  we don't want any RMIClassloader to attempt to load the class.
  In normal projects client and server side contain the classes
  that are necessary for marshaling/unmarshaling the transfered
  types. I have never seen a project where classes are loaded
  dynamically from a remote location. Though the UtilDelegateImpl
  wastes a lot of time trying to load a class using the RMIClassloader.
  The reason is simply standard compliance because the Java2IDL
  spec. requires exactly this behaviour. The default behaviour of
  the method UtilDelegateImpl.loadClass() is the standard compliant.
  With the property mentioned above the costly class loader operations
  can be skipped.

- Added an optimization to ORB.lookup_value_factory(). This method
  always perfoms expensive lookups although it should never be used
  for any RMI type.

- Wrapped an unmarshalling call into a PriviledgedAction to make
  it work even in restricted environments.

- Started adding a time measurement wrapper around test cases
  to be able to detect hanging or long running test cases.

- Added missing class org.omg.CORBA.ObjectHelper to src/omg to make
  OpenORB compile under IBM JDK 1.4.2 as this class seems to be
  missing from IBM's server.jar in 1.4.2 whereas it was still present
  in version 1.4.1.

- Fixed boolean property parsing for the iiop.useNativeLibrary. OpenORB's
  getBooleanProperty assumes each value not equal to 'false' or 'no'
  as true, so when Ant is passing a property like this:
     iiop.useNativeLibrary=${useNativeLibrary}
  because the property has not been set OpenORB evaluates the property
  to true and wants to load the native library later in the tests.

- Added a Codec test case to verify a problem reported by Mathieu Vadet
  (mathieu _dot_ vadet _at_ fr _dot_ thalesgroup _dot_ com).

- Fixed a bunch of checkstyle violations.

- Added read/write_vale/abstract_interface to LocalInput/OutputStream
  classes. This fixes a NO_IMPLEMENT exception reported by Sumedh Mungee
  (sumedh _at_ nms _dot_ fnc _dot_ fujitsu _dot_ com).

- In rare instances a thread deadlock can occur between
  "org.openorb.orb.io.BufferSource.setException()" and
  "org.openorb.orb.iiop.IIOPClientRequest.lastReplyMessage()".  What happens
  is that "IIOPClientRequest.cancel()" (holding the 'm_sync_state' lock) is
  called at the same time as "BufferSource.next()" (holding the
  'BufferSource' lock) generates a firing of the attached
  'LastMessageProcessedListener', calling
  "IIOPClientRequest.lastReplyMessage()", which needs the 'm_sync_state'
  lock. The solution I've come up with is to make the "BufferSource.next()"
  method release the 'BufferSource' thread lock before calling the attached
  'LastMessageProcessedListener'.  As part of this, I've moved the
  functionality of the 'BufferSource.lastMessageProcessed()' method into
  "BufferSource.next()". This fix was contributed by Eric Thomas
  (e _dot_ thomas _at_ isti _dot_ com).

- Fixed a sporadic NPE in Delegate.java.

- Added fix for bug #968135 contributed by Dave Raymer
  (raymerd _at_ users _dot_ sf _dot_ net).

- Improved documentation for idl2java Ant task.

- Added flag "no-rmi-test" to the build process so that RMI test can be 
  disabled while the Java2IDL compiler is being fixed.

- Improved exception message when the types during a
  PortableRemoteObject.narrow do not match.

- Added a message text to the ClassCastException thrown by the method
  PortableRemoteObjectDelegateImpl.narrowExt().

- Do not signal an unexpected case when there is no server side ORB
  available.

- Fixed order with which the compilers are initialized. The method
  execute_compiler shows the copyright header and reads a flag that
  has not been parsed from the commandline at that time.

- If a "LOGGER" is provided in the properties that are passed to
  ORB.init(args, p), that logger is used to initialize the orb and
  initializer loggers. In that case, the priority setting in the
  configuration is basically ignored.

- Fixed some problems with the debug input and output streams which
  would not work under Win32 and were prone to overwriting exisiting logs.

- Refactored ConfiguredSocketFactory to use a stream decoration strategy
  for wrapping socket input and output streams. This framework is more
  powerful and robust than the functionality previously provided by setting
  the properties:

    iiop.SocketOutputStreamClass
    iiop.SocketInputStreamClass

  The use of these properties is now deprecated.

- Fixed some threading errors including use of double-check locking.

- Fixed filename to classname convertion in the Java to IDL compiler to
  handle '\' path separators in addition to '/' path separators.

- Fixed problem in the IDL to Java translator for valuetypes that support
  interfaces from a different module.

- Do not show a warning for an unknown policy value during POA creation
  because it will be handled later on by a policy factory.

- Indicate the pool manager thread to shutdown during ORB shutdown.

- Set a name for the ServerManagerImpl's PoolThreadManager thread.

- Set a name for the UtilDelegateImpl's ORBDaemon thread.

- Improved error messages in IIOPTransport in case of connection
  failures. Thanks to Richard G. Hash <richard _dot hash _at_
  openspirit _dot_ com> for bringing this to our attention.

- Fixed an alignment problem in CDROutputStream that occured when
  marshalling an empty long[], bug #902049. Thanks to Michal Jelen
  <michal _dot_ jelen _at_ aipsafe _dot_ cz> for investigating this
  problem.

- In ORB.init() methods, added checking Applet parameters for the ORB
  class name and the orb.properties file from user home.

- Fixed a marshaling problem in the RMI-IIOP layer that was causing
  VM crashes. When marshaling a RemoteException the base classes
  are RemoteException->IOException->Exception->Throwable.
  Only RemoteException and Throwable have members that are serialized.
  The special situation is that Throwable has a writeObject() method
  but no readObject() method. This leads to a code path in
  ValuHandlerImpl.readValue() that does not seem to be used before.
  The code path was calling defaultReadObject( ..., sc ) where sc
  was the object stream class of RemoteException leading to the
  behaviour that only the detail member of RemoteException was read
  from the stream. The stack trace elements, a member of Throwable,
  was never read. This was leading to a VM crash when the VM tried
  to access the stack trace of the RemoteException.

- Upgraded to checkstyle 3.3.

- Added the patch from tigerf _at_ sf _dot_ net for bug #873558.

- Fixed the broken IDL reflection example.

- Fixed various warnings Eclipse 3.0M6 complained about.

- Added Eclipse project files (.project and .classpath)
  the project can now easily be imported by
      New->Project->Import From existing Source

- Fixed a StackOverflowError (due to an infinite recursion on initCause)
  when the ORB class is not found.

- In OMG's ORB.init(...) operations, added checking for ORB class properties
  passed through the props parameters to ORB.init(...).

- Added the ORB.destroy() operation as it is defined in the CORBA 2.4 spec
  (Section 4.2.3.5).

- Added the ORB.destroy() implementation along with changes to shutdown()
  and finalize() in order to check for multiple calls to these methods.

- Fixed a NPE in idl2java Ant task when verbose="true",
  Sourceforge bug ID 881983

- Added a property "openorb.rmi.use_native_library" which
  can be used for deciding whether the RMI-IIOP engine is
  using the JDK inherent mechanism or a OpenORB native library
  as its unmarshaling engine. The native library can be found
  in the CVS module "native" but it must be compiled for the
  target platform and put on the library path in order to be
  found by the System.loadLibrary("openorb") call.
  There are two reasons for adding such a library:
    1. The JDK has a problem on a certain platform with
       accessing private native methods in JDK internal classes.
       (That was the case for IBM JDK 1.4.1 on IBM AIX 5.2L
       where a UnsatisfiedLinkError occured although the native
       library libjava.a was loaded during VM startup. The
       problem did not occur on the same JDK under SuSE Linux 9)
    2. A new JDK comes out and the developers have changed the
       internal structure of the unmarshaling engine again so
       that the pure Java mechanism doesn't work. In this case
       the library can be compiled for the platform (it might
       even be already compiled for that platform) and used to
       make the marshaling work with this new JDK.

- Fixed the discoverage of the allocateNewObject method for
  IBM 1.4.x JDKs.

- Fixed a bug in the DeserializationKernelFactory which caused
  no other kernel than the Sun kernel to be created.

- Fixed a bug in the DeserializationKernelIBM class which was
  causing demarshaling of obejcts to fail.

- Added support for IBM JDK 1.4.1 by adding a new class
  DeserializationKernelIBM14 where the new IBM JDK 1.4.x classes
  will be used internally.

- Fixed the calculator rmi example by adding the right property
  to instantiate the JNDI context factory.

- Fixed a ClassCastException when the ManagementBoard was launched
  via the launch script.

- Added a patch from Alexej Vlasov <lexas _at_ bssys _dot_ com>
  which fixes a problem with fragmented messages.

- Placed compiler cache files in build directory, caches are now
  deleted by invoking the build target "clean"

- Added cachefile attribute to idl2java and java2idl ant tasks to
  allow the user to control the cachefile location (old behaviour
  and new default is to use the current directory)

Version 1.4.0 BETA1 - December, 19 2003 - OpenORB_1_4_0_BETA1

- Added a patch from Chas Honton <chonton _at_ acero _dot_ com>
  to remove the dubious class TransportAssociationHolder.

- When settings are entered via the properties object into
  'ServerBase.init()', they do not always override properties
  specified by an imported XML module. This is because the
  'org.openorb.orb.config.Configurator' class processes the
  properties and imports the modules all in the same loop,
  sometimes allowing the imports to the happen after the properties
  are added. To fix this, the "orb.config.Configurator.java.diff"
  patch modifies the 'addProperties()' methods so that they process
  the properties in two passes, completing all imports before
  adding the rest of the properties. Patch provided by Eric Thomas
  <e _dot_ thomas _at_ isti _dot_ com>.

- Made members for ServerManagerImpl protected so that they can be
  accessed from a deriving class. Also added the method
  ServerManagerImpl.getChannelsInfo(). Patch submitted by Eric Thomas
  <e _dot_ thomas _at_ isti _dot_ com>.

- Do not set the value to null when typecode is _tk_void, only do this
  for _tk_null (Fix submitted by Ralf Bachmann
  <rbachman _at _ users _dot_ sf _dot_ net>).

- Added a property openorb.rmi.defaultorb.singleton (default false)
  which avoids two ORBs being created, one throw normal ORB.init()
  and the other one internally by calling RMI-IIOP methods.
  With the property set to true the first ORB instance that is created
  will be used as the RMI-IIOP DefaultORB singleton.

- Fixed bug #501332 (Serializable in an any). This patch essentially
  moves most of the RMIoverIIOP implementation into the OpenORB
  module. All classes moved from
     RMIoverIIOP/src/main/org/openorb/rmi/**/*.java
  to
     OpenORB/src/main/org/openorb/rmi/*.java

- Added a static compile() method to both compilers IdlCompiler, JavaToIdl
  which returns an int. The main() method returns the code via
  System.exit(). This compile() method can be used when calling the
  compilers in process, for example from a Deploy tool.
  The scripts java2idl and idl2java have a return code of 3 if an exception
  occured during argument parsing, a return code 0<x<3 when another error
  occured during a compiler run, and a return code of 0 upon success.

- Added a property to allow passing a logging OutputStream to the OpenORB
  logging engine:
      openorb.debug.outputstream
  This is necessary to allow a mapping between different logger
  implementations without adding new dependencies. Without this property
  one would be forced to create an Avalon logger in its application
  code and pass it to the ORB instance being created. With the
  property you can just pass a java.io.OutputStream which will be used
  by the OpenORB Trace class when creating new loggers instead of sending
  output to System.out.

- Added a flag to AbstractServerRequest to be able to turn off throwing
  exceptions when service contexts could not be found. This is a
  proprietary performance improvement as the client code must be able
  to deal with the situation that the methods get_reply_service_context
  and get_request_service_context come back with a null value instead
  of throwing a BAD_PARAM exception. The reason why this has been added
  is that calculating the exception stack trace is a very costly
  operation and this overhead may be saved when setting this property.

- Make the constants IIOPServerChannel.IIOP_SERVER_RECV_TIMEOUT and the
  IIOPClientChannel.IIOP_CLIENT_RECV_TIMEOUT accessible because they
  need to be modified when the channel reapers are disabled.

- Fixed bug in Trace.signalIllegalCondition which could cause a NPE.

- Added complete rework of the ServerManagerImpl's thread pool
  handling. This patch improves the thread pool handling
  substantially and contributes to a better responsiveness.
  This fundamental patch has been tested on big iron and has proven
  to work for at least six months.

- Added javax.rmi.CORBA package from the RMIoverIIOP module to the openorb
  endorsed jar.

- Added code to cache client policies in the Delegate class. This
  is a performance improvement because the policies don't need to
  be recalculated each time the method get_client_policy is called.
  This feature can be activated by setting the property
     openorb.client.policy_cache.enable=true
  Please note that changing policies for the object after its first
  access will not be possible anymore.

- Fixed a bug that showed up only when a lot of fragments were sent.
  The BufferSource implementation has a mark and a reset methods. These
  methods need to be called pair wise. When the response send from the
  server to the client is fragmented because a lot of different objects
  are contained the client reproducibly fails with an assertion failure
  because a reset is called without previously calling mark on the buffer.
  In an old version of OpenORB (1.2.x) this resulted in SocketCloseExceptions
  because upon assertion failure the VM is being shut down and thus the
  sockets are closed. The problem is multithread related because a client
  thread inserts a new fragment into the BufferSource container without
  updating the m_mark_avail member. This leads to a problem when reset is
  called afterwards because the reset operation does not correspond to
  the previous mark operation anymore. In OpenORB 1.4.0 this problem
  has the effect of an IllegalConditionError being thrown to the client
  but the VM remains running.

- Added a feature to debug IIOP traffic on the socket layer. Tools like
  Ethereal are not suitable when it comes to analyzing OpenORB internals
  in multi-threaded applications. The SocketInput/OutputStream classes
  can be used to intercept the socket traffic and dump OpenORB internal
  information into files which show precisely which thread is responsible
  for which socket write or read. The DebugSocketOutputStream class
  creates the following folder structure
      ${java.io.tmp}/${user.name}/<TIMESTAMP>/output
  The DebugInputStream class creates the following folder structure
      ${java.io.tmp}/${user.name}/<TIMESTAMP>/input
  Each instance of DebugSocketInput/OutputStream creates files of the
  form
          <localhost>:<localport>-<remotehost>:<remoteport>
  in their respective folders.
  These files can later be analyzed with a normal text editor. If more
  information is necessary it can easily be added to the stream classes.
  The way to configure this feature is to set the values for the
  following config properties in default.xml:

    iiop.SocketOutputStreamClass=org.openorb.orb.util.DebugSocketOutputStream
    iiop.SocketInputStreamClass=org.openorb.orb.util.DebugSocketInputStream

- Implemented a suggestion from Sean Parker (bug #706401) to avoid a NPE
  <supinlick _at_ users _dot_ sf _dot_ net>.

- Added a memory optimization patch suggested by John Farell
  <Farrell_John_W _at_ cat _dot_ com> (bug # 738579).

- Added patch by Ralf Bachmann <rbachman _at _ users _dot_ sf _dot_ net>
  for bug #814535.

- Added patch by Ralf Bachmann <rbachman _at _ users _dot_ sf _dot_ net>
  for bug #814531.

- Added patch by Ralf Bachmann <rbachman _at _ users _dot_ sf _dot_ net>
  for bug #814526.

- Added patch by Ralf Bachmann <rbachman _at _ users _dot_ sf _dot_ net>
  for bug #814525.

- Added patch by Joncheng Kuo <ckou01 _at _ users _dot_ sf _dot_ net>
  for bug #748891.

- Allow methods with names "get", "set", and "is" in RMI-IIOP remote
  interfaces. The methods with these names were dropped before because
  they are interpreted like getter/setter methods for IDL attributes
  but the attribute name was missing.

- Do not throw another exception when the unmarshalling was already
  interrupted by an exception. When a remote method throws an application
  exception the RMI-IIOP stub tries to read the exception via
  in.read_value(ExClz). When an exception occurs during this read operation
  the finally block in the stub is executed an in _releaseReply(in) a
  "CORBA MARSHAL Buffer Underread" exception is thrown overriding the
  previously thrown exception. Needless to say that the "Buffer Underread"
  does not provide any information about the real cause of the problem.

- Added ISO-8859-1 as fallback in CodeSetDatabaseInitializer.
  Patch propvided by Bobby Chen <chenbo_in _at_ hotmail _dot_ com>

- The JavaToIdl compiler uses the folder "generated" for all generated
  files now when option "-d" is not specified.

- Fixed fragment messages bug #548187. Patch provided by
  Jan Cada <jan _dot_ cada _at_ trema _dot_ com>

- Fixed a problem with the java2idl compiler when compiling interfaces
  with IDLEntity types other than org.omg.CORBA.Any and
  org.omg.CORBA.TypeCode.

- Removed inner interface org.openorb.orb.net.ServerManager.AdapterManager,
  use equivalent org.openorb.orb.net.AdapterManager consistently

- Removed ExceptionTool dependencies from the OMG classes. This was causing
  problems trying to chain exceptions when ExceptionTool had not been loaded
  in the system class loader.

- Added test for bug #725257 (Cannot marshal nested truncatable valuetypes).

- Added create-separate-main-jars build target so that the combined main jar
  can split into separate classes and config jars.

- Removed the setConfig scripts, use the updateConfig scripts
  from tools instead.

- Added shell scripts for the IDL documentation tool: idldoc.

- Moved the SSL IOR component output handling into the SSL module.

- Fixed the Logger derivation hierarchy from IIOPTransportServer- and
  IIOPTransportClientInitializer so that deriving classes can access the
  logger as well (e.g. SSLTransport*, CSITransport*).

- Added a new base interface for orb initializers: org.openorb.orb.Initializer.
  This interface has a single method 'getName' which is called upon
  instantiation of the initializer to get the name for the child logger
  with which the initializer is to be provided with.

- Fixed occasional NoClassDefFoundErrors when handling SystemExceptions
  by temporarily replacing the thread's contextclassloader in
  the SystemExceptionHelper initializer.

- Fixed memory leak in PSS FileSession class by replacing use of
  marshalBuffers hashtable with a call to new operation getMarshalBuffer()
  in class CDROutputStream.

- Fixed org.openorb.orb.test.iiop.primitive.PrimitiveTest failure which
  occurred on OSX with an ArrayIndexOutOfBoundsException

- Optimization: Use randomly chosen starting point when selecting a local
  port number when the client port range is specified. Previously the ports
  were tried in a linear scan starting from the smallest point.

- Added configuration enhancement to allow the a use of the "keep alive"
  socket feature. New property added:
      iiop.keepAlive=(true/false*)
    * - default value

- Deprecated separate properties:
      iiop.clientNoDelay
      iiop.serverNoDelay
  New property added:
      iiop.noDelay=(true*/false)
    * - default value

- Added a Java2Idl ant task for the Rmi to IIOP compiler.
  See Rmi over IIOP module for documentation and examples.

- Fixed bug in IIOPClientRequest.reply_status() that lead to unbounded
  recursion in some cases. Bug reported by Petter von Dolwitz
  (petter _dot_ von _dot_ dolwitz _at_ appium _dot_ com).

- Moved RepoIDHelper into the tools module as it may also be used from
  the compilers. The RMIoverIIOP methods from the NameMangling class will
  be added to RepoIDHelper.

- Added socket address translation. This is setup using properties in the
  format:
    iiop.address-mapping.<address>=<address>
  See default.xml for more examples.

- Created SocketFactory abstraction.

- Fixed the "java.net.MalformedURLException: unknown protocol: resource"
  problem encounted when loading OpenORB from non system classloader.
  OpenORB can now be used easily inside Catalina.

- Moved build script logic into Ant files.

- Added a final bug-fix for bug #545853. The Byte Order Marker problem
  was finally discovered by Daniel Bell (Daniel _dot_ Bell _at_ colorbus
  _dot_ com _dot_ au). In an interoperability scenario with omniORB 4.0
  the C++ side was sending wstring data with reversed byte-order.

- The build.xml file creates an archive 'openorb_orb_omg-1.4.0.jar' now.
  The archive contains all the org.omg.* classes and must be used to
  to overwrite the JDK org.omg.* classes by using the "endorsed
  standards override mechanism", for more information see:
    http://java.sun.com/j2se/1.4.1/docs/guide/standards/index.html
  For JDK 1.3.x this jar should be put on the boot class path.

- Fixed the IdlCompiler's portableHelper option to work with both JDKs
  1.3.x and 1.4.x.

- Moved the class org.openorb.orb.io.HexPrintStream into the tools
  package: org.openorb.util.HexPrintStream.

- Renamed OpenORB jar files to follow the general naming structure:
    openorb_<SHORT_NAME>_<ARCHIVE_NAME>-<MAJOR>.<MINOR>.<BUGFIX>.jar
  That means for the four OpenORB jars:
    openorb-1.4.0.jar          -> openorb_orb-1.4.0.jar
    openorb_tools-1.4.0.jar    -> openorb_orb_tools-1.4.0.jar
    openorb_test-1.4.0.jar     -> openorb_orb_test-1.4.0.jar
    openorb_examples-1.4.0.jar -> openorb_orb_examples-1.4.0.jar

- Moved the class AbstractTagData from IIOPAddress internal scope into
  public visibility. Added classes TaggedComponentHandler and
  TaggedComponentHandlerRegistry. These classes are the base of a more
  generic approach when it comes to parsing IOR profile components.
  The SSL module has an example of how to parse a TAG_CSI_SEC_MECH_LIST
  component using the new approach.

- Using BufferedInputStream for reading from sockets. A performance
  problem had been spotted here by a profiler, reading the GIOP header
  was nearly as expensive as reading the rest of the message.

- Moved the NamingUtils from OpenORB into the tools module because
  the methods will be used by the Service framework for NameService
  operations.

- Added UpToDate checks to the Idl2Java Ant Task. The task uses a (zipped)
  cache file for tracking dependencies between idl files and generated java
  files. Updated the build.xml file and removed manual uptodate checks.
  Added a section in the OpenORB documentation for all options and examples
  with the idl2java ant task.

- LogEnabled the stream classes with various child loggers. This has mainly
  been done so that valid child loggers will be available in the RMI-IIOP
  layer. The new loggers can also be used to add more logging to the OpenORB
  core layers.

- Updated all the compilers to use the DiffFileOutputStream class, this will
  ensure that files are only overwritten by the compilers when neccicary,
  speeding up builds.

- Removed the apprently erroneous condition in Delegate begin_invocation
  that cause the original request state to be lost when performing nested
  ORB mediated calls. This was causing the corruption of POA dispatch state
  stacks as the postinvoke calls could not be made. This issue was reported by
  Christoph Gerlach <christoph _dot_ gerlach _at_ integrated-workflow _dot_ de>
  who also helped by providing tracing logs generated by his system.

- Added the Idl2Java ant task from Erik Putrycz
  <erik _dot_ putrycz _at_ int-evry _dot_ fr>.

- Prevent LocalInputStream from throwing NPE exceptions on NT4,
  however the reason why the NPE happens on NT4 is still unknown.
  (Patch from Erik Putrycz <erik _dot_ putrycz _at_ int-evry _dot_ fr>).

- Added a fallback mechanism for the NameService operations bind,
  resolve, and unbind. All services should thus use the extended methods
  from class org.openorb.orb.util.NamingUtils:
     o bindObjectToNameService
     o resolveObjectFromNameService
     o unbindObjectFromNameService
  These methods will at first try to perform a normal CORBA NameService
  operation. If this fails a fallback mechanism is used where the
  NameService hierarchy is mapped on to the file system. Therefore a
  folder ".OpenORB" is created in the system default temp folder.
  When the binding name contains any
  sub-contexts then these sub-contexts are created as folders below the
  ".OpenORB" directory. The name of the object to be bound is used as
  the file name of the file in which the IOR is stored.
  The lookup, i.e. the resolve operation, also uses the fallbacks.
  First it tries to find the name at a configured NameService instance.
  If the lookup fails the fallback mechanism inspects the file system
  hierarchy whether the name can be found here.
  The same mechanism is used for the unbind method.

- Protect AbstractClientRequest.get_effective_component() from a NPE.

- Minor performance optimization for getting the URLCodeBase property
  for each CDROutputStream instance. The URLs will be cached in the ORB
  so that String compare overheads will be avoided.

- Small optimization in org.openorb.orb.io.AbstractInputStream. An
  internal IntHolder is used now instead of allocating a new instance
  each time an IntHolder is used.

- Make Delegate.java use the internal method _getIOR() so that a
  sub-class works with an overwritten _getIOR() method.

- Added a descriptive constant for the server and client socket timeout
  value of 1000 for the classes org.openorb.orb.iiop.IIOPClientChannel
  and org.openorb.orb.iiop.IIOPServerChannel.

- Added a patch to avoid NPEs in LocalInputStream.readObject()
  (from Erik Putrycz <erik _dot_ putrycz _at_ int-evry _dot_ fr>).

- Added firewall support patch sent by
  JC Tchitchiama <jct _at_ panonet _dot_ net>.

- Fixed IdlCompiler bug #653983.

- Made corbaloc URLs with ',' and '/' in the object key work again.

- Fixed a problem with xlink URLs. A link to a fragment in a file was
  not recognized as a valid URL. Bug report and patch sent by
  JC Tchitchiama <jct _at_ panonet _dot_ net>.

- The source and binary archives preserve the executable file attributes
  of shell scrpts now.

- Added a setenv script that sets the PATH and CLASSPATH variables for
  OpenORB. Additionally the scripts iordump, java2idl, and idl2java
  have been added to more easily launch the following applications:
     org.openorb.orb.util.IORDump
     org.openorb.compiler.rmi.JavaToIdl
     org.openorb.compiler.IdlCompiler

- Moved compiler overrides into the tools module.

- Moved the org.openorb.util classes into the tools module. This was
  requested to allow easier resuse of the classes in other projects.

- Added a FAQ entry about the CODESET_INCOMPATIBLE exception to orb.xml.

- Recalculate the binding array when similar endpoints are provided in an
  IOR to avoid a ArrayIndexOutOfBoundsException.

- Moved the create local request method from the LocalClientRequest to the
  ClientBinding where the remote create request method is located.
  This makes sure that any exception that has happened with the binding
  will get thrown before proceeding.

- Added the RMIoverIIOP JavaToIdl compiler to the OpenORB module's
  compiler tree. The package name has slightly changed from
    org.openorb.rmi.compiler.JavaToIdl
  to
    org.openorb.compiler.rmi.JavaToIdl

- Moved the compiler out of the core classes source tree and resolved
  several dependencies from the compiler sources into the core.
  The package name remains the same, i.e. org.openorb.compiler.IdlCompiler.

- Removed a dependency from the IdlCompiler to the org.openorb.util.Trace
  class. The Trace class is not used at all but the import was creating a
  dependency from the IdlCompiler classes to the OpenORB core classes.

- Added javadoc for examples and test cases.

- Implemented the dynamicResolve() method to allow using the NameService
  for resolving objects without any compile-time dependencies
  (see org.openorb.orb.util.NamingUtils.dynamicResolve()).

- Implemented the dynamicRebind() method to allow using the NameService
  for rebinding server objects without any compile-time dependencies
  (see org.openorb.orb.util.NamingUtils.dynamicRebind()).

- Fixed IdlCompiler bug #566093. Patch contributed by Alexey Plotnitsky
  <shadow _at_ newst _dot_ net>.

- Moved the classes CreateORBProperties, IORDump, NamingUtils,
  ORBFactory, RepoIDHelper, and Trace from the package
  org.openorb.util to the orb specific package org.openorb.orb.util.
  The classes remaining in the org.openorb.util will be moved out of
  the OpenORB module because of their general applicability.

- Updated version number to 1.4.0.

- The class ReleaseInfo has been removed for simplicity reasons.

- Renamed the following packages:
     org.openorb.*            -> org.openorb.orb.*
     org.openorb.CORBA.*      -> org.openorb.orb.core.*
     org.openorb.CORBA.kernel -> org.openorb.orb.config
     org.openorb.PI           -> org.openorb.orb.pi
  The classes org.openorb.CORBA.ORB/ORBSingleton extend the classes
  org.openorb.orb.core.ORB/ORBSingleton now. The set_parameters() call
  in the ORB class prints a deprecation warning that the new properties
  should be used:
      org.omg.CORBA.ORBClass=org.openorb.orb.core.ORB
      org.omg.CORBA.ORBSingletonClass=org.openorb.orb.core.ORBSingleton
  The old properties will still be supported for some time, but the
  support will be terminated in a future version.

- Fixed CDRInputStream so that the read_<type>_array commands return
  immediately for zero length arrays. Zero length reads previously caused
  the stream to become misaligned.

- Moved the examples into the package org.openorb.orb.examples,
  fixed checkstyle warnings and some bugs.

Version 1.3.0 - September, 27 2002 - OpenORB_1_3_0

- Fixed an endless loop with resolve_initial_refernces(). When looking
  up the rir NameService the last fallback is to try to resolve the rir
  on the NameService. This should not be done for the NameService itself
  as it is not known at that time.

- Made corbaloc parsing more fault-tolerant. A common mistake is to write
  "corbaloc://". The scan_url_loc() method was looking for the first
  occurence of '/' which returned position 0 in this special case.
  This method has been changed to look for the lastIndexOf( '/' ).

- Fixed several problems with fixed type handling and included the
  iiop.complex test cases.

- Optimized IIOPClientRequest so that is doesn't have to catch an INV_POLICY
  each time it is instantiated and the SYNC_SCOPE_POLICY_TYPE isn't set.

- Added configuration enhancements to allow greater control on how servers
  listen for connections, replacing hardcoded values. New properties added:
      iiop.serverMaxSocketAcceptTimeout
      iiop.serverMinSocketAcceptTimeout
      iiop.serverOverrideSocketTimeout

- Added configuration enhancements to allow the a BufferedOutputStream to be
  used on socket output stream. New property added:
      iiop.bufferedOutputStreamSize

- Added configuration enhancements to allow the control of SO_SNDBUF and
  SO_RCVBUF socket properties. New properties added:
      iiop.recieveBufferSize
      iiop.sendBufferSize

- Changed default value for iiop.boostReceivePriority as it assumed that most
  people would be running NT4.0. Default is now false and NT4.0 users should
  explicitly enable it.

- Added a patch by Albert Zhou (azhou _at_ yahoo _dot_ com) to
  address the root context in a corbname URL by specifying an
  empty string after '#'.

- HTML documentation is showing the pictures as in the pdf file now.

- Fixed bug #599048 with the IdlCompiler option -portablehelper.
  The generated code for the extract() method was missing a
  closing bracket and thus was not compilable at all.

- Added a patch for fixing a strange exception when running the
  OpenORB unit tests. Patch contributed by John Farell
  <friendless _at_ optushome _dot_ com _dot_ au>.

- Added documentation updates contributed by John Farell
  <friendless _at_ optushome _dot_ com _dot_ au>.

- Fixed bug #595173 (Wrong name for valuetype factory methods).
  Patch contributed by Joncheng Kuo (ckuo01 _at_ syr _dot_ edu).

- Fixed bug #589335 (IdlDoc can't take hexadecimal expression). Patch
  contributed by Joncheng Kuo (ckuo01 _at_ users _dot_ sf _dot_ net).

- Make build.sh work with the latest cygwin version. The script
  was using a variable OSTYPE that is not available in sh. The
  official way to get the name of the platform is uname which
  is now used for determining the CLASSPATH separator.

Version 1.3.0 BETA2 - August, 10 2002 - OpenORB_1_3_0_BETA2

- Added patch by Chris Wood (openorb _at_ ninjateaparty _dot_ com)
  Fixed problem with comparing valuebox types in an any.

- Added patch by Diego Sevilla Ruiz (dsevilla _at_ um _dot_ es) for
  the install target of the build.xml. The new version copies the
  files to the path specified by the property install.path just as
  if you extract one of the binary tarballs.

- Added support for local calls.
  Patch by Erik Putrycz <erik _dot_ putrycz _at_ int-evry _dot_ fr>.

- Made the property parsing more fault tolerant, -ORBDebug without
  further parameters was crashing the ORB with an ArrayIndexOutOfBounds
  exception.

- Fixed bug #583158 (MacOSX charset problem). This is not a bug.
  The OSF codeset registry doesn't have a MacRoman codeset.
  The fallbacks for "char data" are used in this case: UTF-8 and ASCII.
  The error message is misleading, so it has been changed to a warning
  level message instead.

- Fixed bug #584008 (Infinite loop with Japanese codeset).
  Bug reported by Stefan Reich.

- Added a patch to make OpenORB work on the iPAQ runging IBM VAME
  (VisualAge Micro Edition). The IBM version of the VM has
  capitalized canonic codeset names, this did not work with OpenORBs
  CodeSetDatabase table, adding calls to upperCase() makes
  OpenORB resistent against such differences. Patch contributed
  by Erik Putrycz <erik _dot_ putrycz _at_ int-evry _dot_ fr>.
  The patch needed a check to handle a special case for
  running OpenORB on JDK 1.3.x or on JDK 1.4.x.

- Added a patch to allow setting the priority of a logger
  even if it is passed from the outside to the OpenORB
  loading sequence. Patch contributed by Erik Putrycz
  <erik _dot_ putrycz _at_ int-evry _dot_ fr>.

- Added property aliases to enable debug and trace output
  without the need to pass system properties to the vm.
  Patch contributed by Erik Putrycz
  <erik _dot_ putrycz _at_ int-evry _dot_ fr>.

- Added the ant target 'build-codesetdb' for automatic
  generation of the file CodeSetDatabase.java.
  Patch contributed by Erik Putrycz
  <erik _dot_ putrycz _at_ int-evry _dot_ fr>.

- Fixed package names of the examples (Patch contributed by
  Diego Sevilla Ruiz <dsevilla _at_ um _dot_ es>).

- Make the install target in build.xml copy all jars from the
  dist directory to the specified install location.

- Added another protected constructor to the Delegate class.
  This constructor enables a sub-class to perform only needed
  initializations and by that significantly improves performance
  of the delegation mechanism in the local optimized call case.

- Added support for TAG_SSL_SEC_TRANS components when printing object
  references. This functionality was only present when the
  SSLTransportClientInitializer was loaded instead of the
  IIOPTransportClientInitializer.
  Additionally the output of the other components has been aligned
  to follow a common pattern so that the output gets more readable.

- Added dump-info target to build.xml to show the basic settings
  that are used by ant.

- Add support for xalan on JDK 1.4 to build.xml. Without the fix the
  compile-docbook target does not work.

- Added fix to avoid BAG_MAGIC exceptions when running OpenORB with JDK1.4
  and NT4.0. This can be controlled using the property:
      iiop.boostReceivePriority=(true*/false)
    * - default value

- Added configuration enhancement to allow the control of TCP_NODELAY
  feature on both the client and server side. New properties added:
      iiop.serverNoDelay=(true*/false)
      iiop.clientNoDelay=(true*/false)
    * - default value

Version 1.3.0 BETA1 - June, 19 2002 - OpenORB_1_3_0_BETA1

- Changed the constructor access modifiers of org.openorb.CORBA.Delegate
  from private to protected and added three getter methods. This changes
  enable sub-classing of the Delegate class to provide performance
  optimizations in the local optimized call case. The object id
  decomposing seems to be quite expensive and is done for each call when
  doing in process calls. A possible sub-class implementation caches
  object ids in relation to CORBA object instances in a Hashtable and
  by that significantly improves the object lookup overhead.

- Added a patch by Thomas Haug (thomas.haug@siemens.com) to support
  the evaluation of the propertyset tags in OpenORB's config xml files.
  This was not working before and therefore no alternate endpoints could
  neither be declared in default.xml nor in a properties file. With the
  patch the following works now:
      <propertyset prefix="alternateAddr">
          <property name="endpoint1" value="localhost:6661" />
          <property name="endpoint2" value="localhost:6662" />
      </propertyset>
  Or in property file syntax:
      iiop.alternateAddr.endpoint3 localhost:8888
      iiop.alternateAddr.endpoint4 localhost:8889

- Added some checks to avoid ClassCastExceptions, see RMIoverIIOP's
  WHATSNEW file for detailed explanation.

- Added a method to print human readable IDLType constants (not used yet).

- Simple performance improvement by caching the target adapter in the
  client binding so that it is not searched for with each _is_local call.

- Commented out an expensive connection attempt from class IdlGrammar
  to the InterfaceRepository. This was slowing down the IdlCompiler
  because each time the IdlGrammar was instantiated an ORB.init() was
  performed and a lookup of the InterfaceRepository was done.

- Added support to the IdlParser to load IDL files from Jar resources.
  IDL files in Jar archives can be referenced now be adding a "-I" switch
  with the relative path in the archive. E.g. the file OpenORB_corbaloc.idl
  can be found now by adding "-I org/openorb/idl" as parameter to the
  IdlCompiler command line.

- Fixed the OBJECT_NOT_EXIST semantics according to the spec. The spec.
  mentions that upon OBJECT_NOT_EXIST the internal and external references
  to the object should be removed. Now the exception is thrown to the client
  so that it knows that the reference does not point to a valid object
  anymore.

- Added a property "openorb.client.bindings.discard_old" to throw away
  old endpoint information when a client receives a redirection from the
  server. The method RequestState.receiveRedirect() does some magic things
  and it might be dangerous to touch so a property is safer here.
  The behaviour of the alternate receiveRedirect() is not quite
  standard compliant because it really throws away old endpoint information.
  The spec. demands that old information should be kept in any case. In the
  LOCATION_FORWARD_PERM case the new endpoint(s) should be used preferably.
  This behaviour is some kind of broken in the old receiveRedirect()
  method because depending on the object key and a "priority" the endpoints
  are sorted. This could result in a situation where the newer endpoints
  are placed after older ones and causing a delay when switching between
  endpoints.

- Fixed a bug (Reported by David Weiss) in the OpenORB initialization
  procedure. The POA creation was not thread safe and resulted in
  sporadic InvalidPolicy or BAD_PARAM exception when calling POA
  methods.

- Updated IdlToJava generator to implement readResolve for the correct
  deserialization of enums. See Java RTF Issue 4271.

- Fixed ListOutputStream to handle nulls property for the CORBA 2.3
  additions to OutputStream.

- Optimized IIOPAddress.getAddresses to lazily create component data
  strings along with the Int2Hex optimization proposed by Lars K?hne.

- Fixed bug #550366. The jdk-runtime-library property can be used
  to specify the path of the Java Runtime Library for those JDK's which
  do not use ${java.home}/lib/rt.jar.

- Fixed an IdlCompiler bug. The generated Helper class was passing
  the integer 0 for a char/wchar parameter to the constructor of
  the value box constructor. The compile failed because of incompatible
  types. The fix is putting a cast in front of the value 0.

- Added a fix from Lars Kuehne to avoid creating Boolean objects. The
  kernel is now "new Boolean" statement free.

- Added a checkstyle target to build.xml. The command
  "build.sh checkstyle" checks the source code for adherence
  to the Jakarta coding conventions. Fixed many coding style warnings.

- Fixed an interoperability problem when receiving wchar/wstring
  data. The other side is allowed to send a BOM which needs to
  be removed before the data is passed on to the user.
  The other side can also decide to send wchar/wstring in arbitrary
  endianess, this mismatch in byte order must be fixed when
  receivin the data, indicating that the byte order of the
  process differs from the wchar/wstring byte order.

- Fixed a memory leak in object_id() of DelegateImpl. Reported
  by Patrick Mann <Patrick.Mann@isrglobal.com>.

- Started switching to an internal exception logging policy that
  shows internal exceptions only when DEBUG/MEDIUM is set.
  On JDK1.4 stack traces will be merged so that internal exceptions
  will not be lost. This is not possible on older JDKs but a similar
  behaviour can be achieved by setting trace to DEBUG/HIGH, because
  in this case internal exceptions will be logged before they are
  rethrown as CORBA System Exceptions.  Fixed bug #517892.

- IDL compiler enhancements including more control over the generation of
  invoke methods, optional use of JDK1.4 supported features.
  Experimental features include generation of default factory and
  implementation classes for Value Types.

- Fixed bug #543751. Removed uses of InternalError which should only
  be used by the JVM to indicate internal error conditions.

- Fixed bug #515918, the TRANSIENT exception is thrown now as specified
  by the spec. Before the COMM_FAILURE exception is thrown in most cases
  where a communication problem occurs. The spec. is quite clear about
  the semantics of COMM_FAILURE and TRANSIENT. COMM_FAILURE should
  be thrown when a communication problem occurs after a request has
  been send and no reply received yet. TRANSIENT should be thrown when
  the ORB failed to establish a connection to send the request.

- Added compiler override directory that allowing code that uses
  JDK1.4 operations to be compiled on JDK's prior to 1.4.

- Added JREVersion class to determine the version of JRE running the class.
  This is used in conjunction with the compiler overrides to determine
  if a 1.4 feature can be used by the current JRE without causing a runtime
  error.

- Corrected semantics of DynStruct methods, fixed bug #504025.

- The properties "openorb.debug", "debug", and "verbose" have
  been deprecated. The properties
    openorb.debug.trace=0|1|2|3|4 or FATAL|ERROR|WARN|INFO|DEBUG
    openorb.debug.level=0|1|2|3   or OFF|LOW|MEDIUM|HIGH
  have been added. The latter controls the verbosity of the
  DEBUG priority. The priority setting using this property is applied
  only when no logger instance is passed by a LOGGER property.

- Fixed bug #509463. When ignoreXML=true was specified, the
  "-ORBname=value" command line arguments weren't parsed at all.

- Fixed relative roundtrip timeouts for wait_for_response and
  poll_request of the org.openorb.CORBA.Delegate class.

- Replaced static created exceptions such as QUEUE_FULL_EX, etc in
  org.openorb.net.ServerManagerImpl with static methods that create
  new instances each time. Before, when these exceptions were
  thrown, the stack trace was that of when they were created!

- Fixed bug #505157. Problem with Delegate's getAddress method causing
  problems for local invocations.

- Fix unmarshalling problem for DynAny arrays/sequences
  Problem reported by Alexander Schnell and Andrew Finney

- Throw INITIALIZE exception from org.omg.CORBA.BOA.init()
  when the BOA hasn't been initialized.

- Changed codeset to ISO-8859-1 when using GIOP 1.0
  See spec section 13.10.2.1 for details.

- Fixed a strange TIMEOUT exception that was occuring when
  a timeout was set and the method _non_existent() was called
  on the object.

- Added an example showing correct usage of the CORBA Messaging
  RelativeRoundtripTimeout Policy.

- Fixed a EOFException that was occuring when using the CORBA
  Messaging policy RelativeRoundtripTimeoutPolicy. The client
  was sending a bogus CancelRequest message to the server which
  was causing the message to be shorter as it should.

- Changed all Class.forName() calls to
  Thread.currentThread().getContextLoader().loadClass()
  This is safer when having multiple class loaders.

- Fixed bug #523913. Similar problem as in #523963 below.
  In this case, using DynAny to create an array and then creating
  an Any. Marshalling of the Any would fail.

- Fixed bug #523963. Problem with marshalling
  arrays using Helper classes from ORBacus and JDK idl compiler.
  Arrays were written element by element using write_xxx.
  The portable InputStream class, ListInputStream, would not
  handle this.

- Fixed bug #515914. Removed the last remaining System.exit(1)
  call by a call to Trace.signalIllegalCondition() so that the
  whole VM is not taken down upon error in one orb instance.

- Changed the property name for the transport server initializer
  from "iiop.IIOPTransportServerInitializerClass" to
  "iiop.TransportServerInitializerClass". This is following the
  name for the client transport initializer.

- Support for cyrillic charset alias ISO8859_5 added,
  see bug #523358 and #526855. The last creation of the
  CodeSetDatabaseInit.java file was bogus. The codeset names
  didn't use the Java codeset names. Therefore only the
  default codesets made it into the list of supported
  server codesets. The complete overhaul of the CodeSet
  classes fixed this and introduced many optimizations as
  well as general cleanups.

- Support for clean Initializer disposal.
  Updated ServerManagerImpl, ORBLoader, and ORBInitInfo to
  support initializer disposal on shutdown.  The orb.shutdown
  method hands control over to ServerManagerImpl which now
  checks id the ORBLoader implements the Avalon Disposable
  interface, and if so, invokes dispose on the loader. The
  the in-progress Apache ORB Loader implemention of dispose
  invokes dispose of the ORBInitInfo which in term invokes
  dispose on any Initializer instances that implement the
  Disposable interface.  This enasures that any Initializer
  can properly clean-up as a result of an ORB shutdown.

- Started removing the dependency to the CosNaming module
  (NamingService). It had been a bad idea just because of
  an ill designed NamingService (No easy transient version)
  to introduce a transient NamingService into the ORB.
  This transient NamingService has been refactored and moved
  as org.openorb.tns into the NamingService package. To get
  rid of the ORB internal NamingService we declared all related
  classes/methods as deprecated and we will remove them in a
  future release of the OpenORB package.
  The corbaname URL resolving has been converted to use a
  reflection approach so that there is no compile time
  dependency. This is not a problem, because a runtime dependency
  always existed as you need a NamingService instance to resolve
  the URL against.

- Modified Configurator to accept the standard initializer
  specification syntax; deprecated use of the old syntax.

- The logging system has been changed and is based on the Jakarta
  Avalon LogKit now. The ORB Loader and Connector classes have
  been changed to use the pattern "Inversion of Control" (see the
  Jakarta Avalon page for more information). That means that the
  ORB is seen as a component and any information is passed to the
  ORB from a parent component. This passing of a logger instance
  can be achieved via the context property "LOGGER".

- Fixed bug #501443 by adding a switch "-codepage:ISO-8859-5" to
  the IdlDoc tool. This switch changes the code page in the meta
  tag of the generated html files. Default is ISO-8859-1.

- Fixed bug #505154: hexadecimal constants with 'd' or 'D' were
  not processed correctly, because the letter was misinterpreted
  as the fixed constant delimiter.

- According to 21.7.3.1 of the CORBA spec., initializers are
  specified as
     org.omg.PortableInterceptor.ORBInitializerClass.CLASSNAME
  where CLASSNAME is the full class name. When using the ignoreXML
  property for circumventing the XML parser instantiation, the
  initializer properties have been changed to follow the CORBA
  PI scheme.

- Added an additional way to initialize the transient naming
  service MapNamingContext. Patch provided by Stefan Reich.

- Separated the setConfig shell scripts from the build.xml.
  Added an add.bat file to perform the actual command.

- Added local.properties file to influence the ant build
  process locally.

- build.sh now works under Cygwin, patch submitted by
  David Blevins (dblevins@users.sourceforge.net).

- Aligned idl files to the Jakarta coding guidelines.

- Removed assert() methods from Trace class due to JDK-1.4
  assertTrue() should be used.

- Moved the tests from src/test/src to src/test (to align with
  other packages) and renamed the test "primative" to "primitive".
  Aligned the test idl files to the coding guidelines.
  Added a test.idl file for uptodate checking.

- Total restructuring of the build.xml file. It is now
  much easier and much more flexible to use (see "ant help/targets"
  for details).

- Added another fixed type patch by Marc Schuelpbach.
  The class IdlToJava is scaling a fixed using the method
  movePointLeft. This method lets untouched the BigDecimal
  instance but returns the scaled value. so the stubs/skeletons
  generated by the IDL compiler do not scale the fixed they have
  unmarshalled.

- Removed scripts test.bat/test.sh, use build.bat/build.sh with
  parameter run-test instead.

- Fixed Javadoc warnings and deprecation warnings.

- Fixed Unmarshalling exception (buffer underread) when marshalling
  0 as a fixed type.
  (Patch send by Marc Sch?pbach <Marc.Schuepbach@sic.ch>)

- Fixed a COMM_FAILURE when shutting down on AIX boxes.
  This is due to interrupting a ServerSocket.accept().
  On AIX (JRE 1.3.0) a SocketException is thrown in this case.
  (Patch send by Marc Sch?pbach <Marc.Schuepbach@sic.ch>)

- Removed the cause for some deprecation warnings in several
  test cases and the WrongTransaction exception.

- Bug #510234: Added the proposed patch by Satish Boggavarapu.
  Added a test for the bug to ORBTest.java.

- Removed the common libs from the lib directory.

- Converted the orb.xml file to docbook format.
  Build.xml creates pdf and html output now.
  The documentation has been extended by a description of OpenORB's
  architecture. However the docs in general need serious work...

- Merged install.txt and src/etc/README files.
  Moved src/etc files CHANGELOG, README, and EXOLAB.txt
  to the base directory of the package and renamed
  CHANGELOG to WHATSNEW (Jakarta style). Also added
  the Apache license to the root file LICENSE.

- Switched to template based manifest files.

- Aligned code to the Apache/Jakarta coding guidlines
  (Normal and generated code). Removed unused classes from import
  section, patch by (Lars Kuehne <Lars.Kuehne@ppi.de>)
  Also by Lars is a patch that has its origins in the tool
  checkstyle v2.2. This patch aligns the code to JLS and
  substitutes lines of the form import x.y.*; by the actual classes.

- Fix #504462: Removed an unnecessary allocation of
  float/double arrays and the corresponding copy loop.

Version 1.2.1 - January, 11 2002 - OpenORB_1_2_1

- Fix #502230/#771: Call servant_preinvoke() in the remote case
  only with the isLocal parameter set to false, otherwise a
  ClassCastException will be the effect.

- Fix #501840/#771: Compile for JDK1.2.x should work again.

- Fixed a bug reported by Chris Smith (Chris.Smith@uab.ericsson.se)
  concerning a wrong timeout value for the RelativeRoundtripTimeout
  policy.

- Bug #848: Added a check for null to avoid a NullPointerException.

- Bug #844: Added the patch to allow Japanese comments in IDL files.
  (torutk@alles.or.jp)

- Bug #668: Added a patch to fix the upper/lower-case problem.

- Bug #433: Added the patch by Greg Hamer (ghamer@troikanetworks.com).

- Added several fixes for the local invocation case in POA.java.

- Bug #758: Use getValue() instead of getExpression() to avoid
  a NumberFormatException when the values are constants.

- Added a TODO file to src/etc

- Bug #761: Added a patch contributed by ??? (mhb@cephei.com).

- Bug #829: Return from fullname() with null when IdlRoot object
  is passed, because no modules can be found then.

- Bug #798: Added an enhancement by Anton Jansen (gradius@fmf.nl)
  to the class generated for enums.

- Bug #795: Added a fix to DynEnumImpl by Adrian Hempel
  (adrianh@ot.com.au)

- Translated some comments in IdlCompiler.java into english.

- Bug #835: A NullPointerException could be thrown when a partner
  has already died and the thread is still trying to process msgs
  by accessing either _clientChannel or _serverChannel.

- Bug #715: Added trace output for original exceptions.
  Added a new property openorb.debug.ShowStackTrace. This property
  can be used to show the actual exception traces for all the
  rethrown exceptions.

- Fixed the example (idl2java) in the IdlCompiler's usage text.

- Fixed a NullPointerException in servant_postinvoke() (local case).

- Updated InputStream, OutputStream to the latest IDL2Java mapping.
      formal/01-06-06.pdf: read_fixed/write_fixed()
  Added some deprecation comments from the latest IDL2Java spec.

- Translated some comments.

- Added a runtest target to the build.xml file.

- Bug #824: Removed the System.exit(0) call.
  But running the IDLCompiler in process multiple
  times could reveal the same problem as with the JavaToIdl
  compiler (see #646)

- Bug #827: Use the class org.openorb.CORBA.ORBSingleton explicitly.

- Fixed a NullPointerException when creating recursive typecodes.

- Added IOR display support for the HEARTBEAT_ENABLED policy.

- Added a patch from Sam Cooper for bug #648, fixing a problem with
  package names for union members.

- Windows fixes to IORDump utility, -f switch was not working
  properly.

- Added some undocumented flags to the usage list and ordered the
  switches lexicographically.

- Added the fix for bug number #771 which has been reopened recently
  because of problems with servant_postinvoke when using servant
  managers.

- Fixed a small bug in one of the constructors of the
  SimpleIORInterceptor class. A member was not initialized correctly.

- Fixed a typo in idlType submitted by Holger Brands.

- Removed an internal throw of an INV_POLICY exception. Returning null
  to indicate a problem is more efficient here.

- Enhancement #796: Added the files to support the Messaging policies.

- Added a method getImportList() for bug #802.

- Performance and memory optimization for codeset initialization,
  bugzilla #793.

- Added a solution to OMG's JavaToIdl Issue 4429
  See http://cgi.omg.org/issues/issue4429.txt

- Added an ant target to create debug jars.

- Enh #794: Added a method and constants to the Trace class.

- Bug #785: else was missing in generated code when using the option
  "-portableHelper"

- Bug: Fixed some short to int conversions for alternate IIOP
  addresses.

- Bug: corbaname URLs without any # were not working.

- Bug: Compiler was not using operations interface for local
  invocation path of attribute setter.

- Bug: iiop.publishIP=true and iiop.publishIP=false had reversed
  meanings. iiop.publishIP=true will now use the IP address, not the
  hostname, and vice versa.

- Fixed a bug in the IDL compiler for module that contains a module
  with the same name.

- Update: CORBA 2.4 specifies that LocateReply bodies must be 8-byte
  aligned. Updated to comply.

- Bug: Check for null nameservice when doing corbaloc resolves.

- Bug: hashCode was using 32 as the maximum value, rather than
  Integer.MAX_VALUE.

- Optimization: Modified CDR streams to only initialize valuetype
  stuff when the first valuetype is sent/recieved.

- Update: Removed WrongPolicy exception from create_reference_with_id
  to conform with the spec. This was a JDK 1.4 interoperability patch.
  This will require anyone using this method to update their code,
  just delete the catch block. Since an exception was never thrown
  in this location, it should be a simple change.

- Update: Updated PortableInterceptor::ForwardRequest to remove the
  permanent flag. This conforms to the latest PI specification, and
  allows operation under JDK 1.4, however will again require changes
  to some code.

- Bug: compiler.object.IdlObject#searchObject() behaving incorrectly.
  Patch sent by Michael Rumpf <michael@rumpfonline.de>

- Bug: In the repository ID helper. The class names were not well
  generated for compound prefixes like ab.cd.ef.

Version 1.2.0 - August 8, 2001 - OpenORB_1_2_0

- Hack: added destroy method to all request interceptors. This hack is
  added to allow JDK 1.4 compatability. The destroy method will be
  implemented after the 1.2.0 release.
  Patch by Stephen McConnel <mcconnel@osm.net>

- Update: Updated junit to 3.7, updated all the test cases to use
  assertTrue to avoid problems in JDK 1.4.
  Patch by Stephen McConnel <mcconnel@osm.net>

- Update: Renamed Trace.assert to Trace.assertTrue, this allows
  compilation in JDK 1.4. The old assert is still available, although
  marked as deprecated and will be removed in the next version.
  Patch by Stephen McConnel <mcconnel@osm.net>

- Bug: Issuing a oneway request with sync scope WITH_SERVER or
  WITH_TRANSPORT to a target which had been destroyed or was otherwise
  disabled at a point before preinvoke would cause a block.
  Bug found using test case by Jeremy Davis <jdavis@accessline.com>

- Bug: Multiple IIOP versioned profiles causing
  NullPointerExceptions. Updated addresses to not compare as equal for
  all same but different versions. Interop problem with JacORB.

- Update: the ReleaseInfo class and the build.xnl file to reflect the
  new OpenORB version.

- Bug: problem in AbstractServerRequest.
  Patch sent by Stuart Wheater [ Stuart_Wheater@hp.com ]

- Bug #688: Compiler was incorrectly not creating the local invocation
  path for abstract interfaces, resulting in infinite loop.

- Update: Updated IORDump to work with files as well as bare IORs.
  Patch submitted by Jesper Pedersen <jep@itplus.dk>

- Bug #648: concerning a problem with Union within the generated
  classes. Patch sent by Sam Cooper <sam.cooper@scisys.co.uk>

- Bug #661: concerning a problem with constants in IDL descriptions.

- Bug #645: concerning the -d and -package flags of the Idl compiler.
  Patch sent by Michael Rumpf <michael@rumpfonline.de>

- Bug: in the IDL compiler.
  Submitted by Sam Cooper <sam.cooper@scisys.co.uk>

- Feature: Added new Corbaloc Service. This interface improves on the
  old DefaultAdapter by using a real CORBA object for the registry,
  and having it available as a initial reference service. This
  required modifying many of the other services.

- Feature: System exceptions from the server side are clearly
  identified as such in the exception string, and have their vendor
  and minor code numbers extracted for easy debugging.

- Bug: Changed default _charEnc to match the GIOP default, as
  the old value is the fallback value used when no match is found in
  charset negotiation.  Also changed logic when Unicode text should be
  byte swaped. From CORBA 2.4.2 all Unicode text should be in Big
  Endian or tagged in GIOP 1.2, so byteswapping can only be valid when
  using GIOP 1.1.
  Patch submitted by: Goran Lowkrantz <goran.lowkrantz@ismobile.com>

- Optimization: Reorganized much of the server side to improve
  performance, mostly breaking down the events so that single notifies
  can be used on the server side. This improves performance under
  heavy load with many threads in the pool as dramaticaly as the the
  client optimization.

- Update: util.NamingUtils to do everything that ContextUtilities
  does. Deprecated ContextUtils as it doesn't throw exceptions much
  of the time, causing problems in a range of situations.

- Bug: In reflective org.openorb.compiler.idl.parser.idlParser class,
  modified the way the IdlParser is created, so now it uses the
  IdlCompiler.createIdlParser() method that manages the included URL
  files (such as org/openorb/idl/*.idl).

- Test: Added test to POA. Checks in set_servant_manager that the
  servant manager is local. Also fixed the exception/minor code thrown
  when servant manager is wrong type or null.

- Optimization: When writing trace messages objects are sent, instead
  of strings. This avoids the often costly toString method. %1-%5
  performance increace.

- Optimization: Removed queue for message sending. Threads sending on
  a channel synchronize directly for writing to the channel. %700
  performance increace under heavy client load.

- Bug: In iiop.CodeSetDatabase which was causing a array bound
  exception. Submitted by Jason Tishler [Jason.Tishler@dothill.com].

- Update: OpenORBLoader now loads the PI using the class types as well
  as the arguments. Allows overloading of the orb.

- Bug #617: Compiler bug, the local invocation path for the set
  operation was looping. Problem fixed. Submitted by Arend Smit
  <arends@fmf.nl>.

- Bug: Fixed a problem with DelegateImpl, _this() would not work
  correctly when in context of a request on a non-retain POA.

- Optimization: Set TcpNoDelay on sockets for performance improvement.

- Doc: Added some extra javadocs to the test cases

- Bug: Fixed problem with ClassLoader when reading bytes from file
  and not checking the number of bytes actually read (especially for
  last packet).

- Bug: Bug in the NamingUtils class for the 'parent' operation.

- Bug: Fixed problem where multicomponent profile not added to
  published IORs.

- Update: Added ServiceId SecurityAttributeService to IOP.idl.

- Bug: Compiler problem, extra full constructor output for empty
  exceptions.

- Bug: Compiler problem, race condition for creating typecodes. Also
  updated to avoid synchronizing when creating typecodes for types
  without members.

- Bug: Fixed problem with bidirectional, fragmented IIOP losing the
  fragments.

Version 1.1.0 - May 7, 2001 - OpenORB_1_1_0

- Fixed bug where '.' in system properties would cause initialize
  exceptions.

- Updated the documentation.

- Added the installation class, util.CreateORBProperties. This
  installs the orb quickly and easily.

- Made some changes to the Configurator to comply with the docs.

- Fixed shutdown bug in IIOP. When shutting down a connection, openorb
  will use shutdownOutput if available, and will only read incomming
  data until it has to wait > 1s for more data.

- Fixed channel age problem. Channel ages were not being updated when
  the last active request completed on the client side.

- Updated config file format to allow propertyset elements in
  modules. These declare that a property set may be used. At the
  moment, for documentation only, no action is taken.

- Modified server manager semantics for registering multiple protocols
  as profile constructors, any unique protocol/profile tag pair will
  have it's own profile in constructed IORs.

- Modified server manager a bit so that listen and stop listen result
  in thread actions.

- Added iiop.biDirOnlyServer property. This can be used on client orbs
  which do not wish to listen for incomming requests.

- Fixed problem with bidirectional IIOP. Server side BiDir policy was
  being ignored, if any client requested BiDir, it was used.

- Fixed bug in class generation for concrete valuetype that inherits
  from abstract valuetypes.

- Fixed compilation problem on jdk 1.2.

- Fixed bug  with disorderly shutdown of connections. If a server
  was killed all future attempts to invoke on the server failed.

- Fixed problem with case sensitive profile/module names when
  performed through xml file.

- Moved OpenORB.dtd to src/config. The entire contents of src/config
  are now copied complete to the org/openorb/config directory in the
  openorb jar file.

- Fixed bug for port number > 32656 ( for example under Mac OS X )

- Fixed bug in fragmentation. Some message fragmentation would result
  in bad allignment for the following data.

- Modified compiler output so that helper for complex types are not
  dependant on org.openorb.CORBA.Any. Two possible helper formats, one
  fast and must be compiled using OpenORB, one slower, but surer. Use
  the -portablehelper compiler flag to chose the latter.

- Modified compiler output so interface helpers define the
  unchecked_narrow operation.

- Fixed shutdown problem, calling orb.shutdown(false) from a server
  thread would block indefinatly.

- Bug fixed : problem with several constants declared in the same
  interface.

- Bug fixed : reuse of an identifier when declaring a constant.

- Added a new flag '-noreverseprefix' to use prefix as package name
  without reversing the order of the prefix components.

- Made some changes to the net package, the ServerManager and
  ClientManager classes have been split off from their interfaces. The
  reasoning behind this move is to not load the ServerManager class
  for client-only orbs.

- Modified the semantics of the iiop.publishIP property, adding an
  'auto' value. When this default value is used IP addresses are
  published if a fqdn cannot be found.

- Fixed bug in dii.Request, inout parameters were not being
  unmarshalled resulting in buffer underread exceptions.

- Fixed bug in IIOPClientRequest which was causing null pointer
  exceptions whenever a client side interceptor resulted in a forward
  request.

- Added a pragma prefix consistency test in the IDL compiler.
  A pragma prefix must not contain any '/' or ':' character.
  See CORBA 2.4.2, 10.6.1 for details.
  Modified class: org.openoeb.compiler.parser.IdlGrammar.java

- Fixed bug in PI Current for the 'get_slot' operation. If not slot is
  available, tk_null is returned instead of tk_void. Bug reported and
  fixed by Michael Rumpf
  ( michael@rumpfonline.de )

- Added support for Class loader manifest-file referenced classpath.
  Mofidied file: org.openorb.CORBA.kernel.ClassLoader

- Fixed bug in OpenORB in the Any class to support 'insert_fixed' and
  'insert_TypeCode'. Bug reported and fixed by weckerle@ikv.de

- Fixed bug in Delegate.getAddresses. Was breaking local invokes it
  was enclosed within. Also fixed potential problem with standard
  local object operations which could have occoured if the adapter
  performed a local invoke on the target while performing the
  operation.

- Fixed some applet problems, initializing with a null applet would
  fail, and some SecurityExceptions were not being caught.

- Fixed some bugs present on platforms which allow IO to be
  interrupted, and a rare race condition which occours when both ends
  of a connection attempt to close symultaniously.
  There's some serious problems using JDK 1.3 on solaris (but not
  JDK 1.2 or JDK 1.3.1 ) attempting any kind of IO operation using an
  interrupted thread will fail silently. Use JDK 1.3.1 for
  solaris. Still to do is to avoid setting socket timeouts on
  platforms which support interrupted read and accept operations.

- Bug fixed in the IDL compiler ( reported by Jason Tishler ). Before,
  IDL definitions defined in the global namespace do not end up in the
  Java package dictated by #pragma prefix.

- Bug fixed ( reported and fixed by Jason Tishler ) concerning an
  incorrectly uses the path separator (i.e., "/" or "\") instead of
  the Java package separator (i.e., ".") when the "-package" option is
  used in conjunction with multiple input files.

- Bug fixed in the IDL compiler. A 'supports' clause was not correctly
  generated.

- Changed the IDL Compiler to support '-I xxxxx' and '-Ixxxxx'.

- Fixed some problems with bidir IIOP. It seems the previous 'fix' was
  not a fix at all, it just resulted in Bidir never being activated.

- The is_a operation now returns true if the tested repository ID is
  equal to, or has a lower minor code but is otherwise equal to, one
  of the supported IDs of the request target. This also includes a fix
  for the is_a test, if the servant overloaded the is_a operation for
  a POA servant to do somthing other than the default behaviour this
  would be lost for the target_is_a operation on the server side
  interceptor.

- Fixed a problem with TRANSIENT SYSTEM_ID poas, IDs can now cover the
  full rance of 0xFFFFFFFF and the activate_object_with_id will fail
  for IDs created on a previously destroyed POA with the same name.

- Fixed a bug in the IDL to Java class ( bug #421 ). When an interface
  was used in a typedef description. A classcast exception was raised
  because the real object was identified as an interface so the object
  ( typedef ) was casted to an interface.

- Fixed a bug in the IDLFromIR tool. A malformed URL exception was
  thrown.

- Changed the IdlCompiler to support the new IDLFromIR constructor. An
  exception was thrown since it was not possible to instanciate this
  class.

- Fixed some problems with to_url in naming service, addresses were in
  old format.

- Fixed some problems with using corbaloc addresses on their local
  host, the primative object operations needed to be forwarded.

- Added iiop.publishIP to publish the IP address of the local host in
  IORs rather than the hostname, since the latter doesn't seem to work
  on some hosts.

- Added openorb.useStaticThreadGroup property.

- Fixed some bugs in thread pool sizing, the pool would never grow
  beyond 10 due to faulty array copying code, and would not shrink
  once all requests stopped comming in since _syncState was never
  notified.

Version 1.0.1 - March 9, 2001 - OpenORB_1_0_1

- Improve the IDL compiler scope management.

- Enhanced the IDL compiler to detect exception types as arguments or
  return types.

- Enhanced the IDL compiler to detect identifier repetitions in enum,
  struct, union

- Enhanced the IDL compiler to detect excepion repetitions in the
  'raise' clause and to detect exception types as parameter or return
  type.

- Updated the ant (version 1.3) and xerces (version 1.3.0) jar files.
  Removed the parser.jar and jaxp.jar files (not needed anymore).
  Modified the build.file so the manifest files are now generated in
  the build file.  Removed the manifest files from src/etc.

- The InitialReferencesService / DefaultAdapter is now compatable with
  the JDK ORB's initial reference location protocol, use the arguments
  -ORBInitialHost=<hostname> and -ORBInitialPort=683 on your JDK orb
  to be able to resolve the reference to the NameService.

- Replaced the French comments in the compiler package for most of
  classes.  Remaining ones will be modified shortly.

- Previously DII deferred invocation and polling wasn't performing to
  the spec, a poll_response operation would be equivalent to a
  get_response operation if the poll_response returned true. This is
  fixed. There were also problems with sending defered requests where
  the recieving thread was not the sending thread, these are now
  fixed. One problem remains: no check is made to ensure the recieving
  thread of a polling request is in the same transaction as the
  sending thread.

- invalid state at releaseReply crashes are now avoided. This will
  potentialy cause some issues with matching up the exception reported
  to the interceptors and the exception actualy thrown during
  marshalling, but this can't be helped.

- toString method of objects now returns description of all the
  currently used bindings for an object, this is used by the IORDump
  utility.. The getAddresses function, defined in the delegate, allows
  introspection of the currently bound addresses.

- Added bindCorbaloc operation to MapNamingContext for easy corbaloc
  binding.

- Recursive typecodes get natural definitions of hashCode and equals.

- Fixed handling of -ORBmodule prop=value arguments.

- Modified configuration to throw more errors instead of silently
  ignoring problems, and to parse files as urls when parsing as a URL
  fails.

- Modified CORBA_InterfaceRepository.idl to remove extra #pragma
  version 2.3 as specified in the CORBA 2.4 spec

- Fixed race conditions on channel shutdown on client and server
  sides.

- Allow orb.init((String[])null, null)

- Modified IdlUnion.java to ensure than discriminant is
  returned in case of a forwarded union.

- Modified IdlGrammar.java to ensure forwarded structs and unions
  are correctly managed within IDL reflection and the IR.

- Modified IdlObject.java to ensure forwarded interfaces and
  valuetypes are correctly managed within IDL reflection and the IR.

- Modified the charsets added to IORs to always add US-ASCII and UCS-2
  to enable interoperation with JDK orb.

- IDL generation has been updated for value box. The problem has been
  identified by Stephen McConnell.

- IDL compiler updated to forbid two arguments with the same name in a
  method declaration.

- Added the JUNIT tests and removed JTF

- DynUnion class modified to ensure correct set_discriminator() equal
  test. The discriminator TypeCode wasn't correctly tested.
  Modified file: DynUnionImpl.java

- DynBasicImpl class was calling the deprecated method available()
  from org.openorb.io.ListInputStream.
  Modified file: DynBasicImpl.java

- Helper classes generation updated to fix a bug for the generation of
  the write/read methods for CORBA fixed data type.
  Modified file : IdlToJava.java

- Added ForceMarshalPolicy, client/server policy which dissallows
  local invocation.

- Allow the thread handed to orb.run to be interrupted while the
  server keeps running.

- Fixed local invocation bug. A->B->C all locals would fail.

- Helper classes generation updated to fix a bug for the generation of
  the write/read methods for CORBA fixed data type.
  Modified file : IdlToJava.java

- Fixed a bug when generating the fixed TypeCode (int tpe instead of
  short).
  Bug submitted by Michael Rumpf (michael@rumpfonline.de).
  Modified file: IdlToJava.java

- Allow the thread handed to orb.run to be interrupted while the
  server keeps running.

- Fixed bug with canceled requests and connection failures not calling
  the receive_exception interception point.

Version 1.0.0 - February, 1 2001 - OpenORB_1_0_0

- Initial Release
