[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openorb-general
Subject:    [openorb-general] [ANN] The Community OpenORB 1.4.0 BETA2 released
From:       "Michael Rumpf" <michael () rumpfonline ! de>
Date:       2004-07-29 12:51:50
Message-ID: 49834.213.178.160.139.1091105510.squirrel () 213 ! 178 ! 160 ! 139
[Download RAW message or body]

                                                                                                                                 Hi,

The Community OpenORB 1.4.0 BETA2 is out!

After nearly 8 months of testing and bug-fixing, the OpenORB
community is proud to release the second beta of
    "The Community OpenORB" product suite version 1.4.

The archives of all packages can be found at the SF project download
area: http://sourceforge.net/project/showfiles.php?group_id=43608

Have fun,
   The Community OpenORB Team


Changes:
========

The following list shows the changes since the first beta release
only. The complete list of changes per package is available in the
WHATSNEW file included with each module.


General:
--------
- 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
- Placed compiler cache files in build directory, caches are now
  deleted by invoking the build target "clean"


OpenORB:
--------
- 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.
- Added the patch from tigerf _at_ sf _dot_ net for bug #873558.
- Fixed the broken IDL reflection example.
- 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.
- 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)


Tools:
------
- For IBM JDK 1.4.2 the ibmorbapi.jar must be put on the jdk.runtime.jars
  property otherwise org.omg.CORBA.SystemException will not be found.
- Added HSQLDB jar which substitutes the InstantDB formerly available
  for OTS only.
- Added the native library jar to this module. A native library will
  currently be extracted for AIX only.
- Switch to checkstyle 3.4 (because of fix for bug #895072).
- Changed the Copyright year from '2003' to '2002-2004'.
- Fixed compilation under IBM JDK because the runtime libraries there
  are not rt.jar, but core.jar and server.jar.
- Fixed the service option: writeIORFile to respect file names instead of
  folders only. Patch contributed by Richard G. Hash
  (richard _dot_ hash _at_ openspirit _dot_ com).
- Optimized NumberCache and CharacterCache, removing the caching of
  MIN_VALUE and MAX_VALUE. The cache range is now configurable using
  system properties, see the javadocs for details.
- Added JUnit tests for caching.
- Added ConfigUtils class to hold any common config code.
- In ServerBase, added more searching for the ORB class according to the
  spec (e.g., system properties and orb.properties file) in deciding
  whether the OpenORB ORB shall be used or not.
- changed ZipUtil method names CreateZip, OpenZip and CloseZip to
  lowercase (binary incompatible change)
- Added the NamingService JNDI jar to the classpath when running
  orb examples.
- Updated Ant to version 1.6.2 as it seems to work with IBM JDK 1.4.1
  without problems. The old 1.5.1 version was causing classloader
  problems during javac tasks and other strange problems.
- Upgraded to checkstyle 3.3.


InterfaceRepository:
--------------------
- Fixed bug #800327 (FullInterfaceDescription: no transient hull).
- Fixed the idl2ir script which now passes the openorb.home.path
  property as VM parameter to the application.


NamingService:
--------------
- Added a fix for the JNDI context factory to use the fallback if
  all other ways fail.


NotificationService:
--------------------
- Fixed copy+paste error that lead to BAD_OPERATION when extracting
  long long from an Any. This affected filtering NotificationService
  Events that contained long longs. (EvaluatorUtility)
- Added a test case for bug #524478. The exception does not seem to
  occur anymore.
- improved Pusher log messages.
- PushConsumers that continue to fail with SystemException for longer
  than notify.resourcesTimeout are now disconnected. This way the server
  can free resources for clients that have terminated without properly
  disconnecting themselves. Contributed by Eric Thomas.
- incorporated partial patches from Richard G. Hash
  to get subscription_change() to work for push events


PersistentStateService:
-----------------------
- Fixed examples: org.openorb.pss.examples.
    memory.basic|transactional.*
    file.basic|transactional.*
    database.basic|transactional.*
- Fixed copy and paste bugs in examples and added loading of
  OTS profile so that the transactional examples will work.
- Added cachefile attribute to psdl ant task to allow the user to
  control the cachefile location (old behaviour and new default is
  to use the current directory)


TradingService:
---------------
- Fixed copy+paste error that lead to BAD_OPERATION when extracting
  long long from an Any. This affected filtering NotificationService
  Events that contained long longs. (EvaluatorUtility)
- Applied patch for bug #799051. It was not possible to
  override a property mode. Contributed by Sylvain Leblanc
  (sleblanc _at_ users _dot_ sf _dot_ net).
- Applied various patches contributed by Richard G. Hash
  (richard _dot_ hash _at_ openspirit _dot_ com):
  Changes are to not throw exceptions using the default constructor
  for exceptions that take string args. If you are running against an
  orb that doesn't allow null strings to be marshalled these cause
  BAD_PARAM.
  Also fixed line 210 of the Lookup.query() method where the tbl.get()
  wasn't using the correct argument to look up the property(s). This
  would cause a CosTrading.Property[] array to be created with null
  contents, causing a CORBA_UNKNOWN on the client side.
- Fixed a bug in the service tupe compiler. When not using
  the keyword mandatory then the PROP_NORMAL was used but a
  trailing semi-colon was not appended.
- Added a test case to verify the previous fix.
- Fixed bug #905379 (NPE in withdraw_with_constraint).
- Added cachefile attribute to stdl2java ant task to allow the user to
  control the cachefile location (old behaviour and new default is
  to use the current directory)


TransactionService:
-------------------
- Substituted InstantDB by HSQLDB 1.7.2.
- Added fix for bug #832259. Connections should be registered
  as resource only when the transaction is active. Contributed
  by Alex Andrushchak (alan13 _at_ users _dot_ sf _dot_ net).
- Use Avalon loggers instead of static methods in Verbose class.
  Messages will now go to the logging backend and not to System.out.
  Errors will always result in Exceptions instead of System.exit()


TimeService:
------------
- Corrected the wrong implementation of UTC time. The value in a UtcT
  shall use the time base at 15 October 1582 00:00:00 GMT at a precision
  of 100 nanoseconds. The old implementation used the Java Date, which
  has time base 1 January 1970 00:00:00 and a precision of milliseconds.
  Also updated the spec version to Time Service Spec 1.1 (formal/02-05-06).



Bug Reporting:
==============

Please report any problem you find to the SourceForge mailing list
openorb-users@lists.sf.net. When the problem is identified as a bug
it will be filed at the SourceForge bug tracking facilities.




-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
openorb-general mailing list
openorb-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openorb-general
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic