Back to Main Page
The changes made to JacORB are listed below according to JacORB release
version number. Please note that bug fixes are listed on the
JacORB Fixed Bugs page.
Fixed since 2.3.1.0
- ORB
-
Fix for GIOP 1.0 / 1.1 message header writing (JAC#826).
-
Added
RequestAnalyser
and RequestProcessorAnalyser
plugins for custom handling of requests. Added new documentation section 6.3 of the Programming Guide. Supplied an example RequestAnalyser
and two RequestAnalyserProcessor
implementations. Added property jacorb.poa.checkRequestIDs
. When set, this forces replies on the same connection to be sent back in the same order, by checking the RequestIDs. This property is designed to work in correspondence with the RequestAnalyser
plugin. Default = off (JAC#822).
-
Added key storage providers and key manager algorithm selection for IBM J9 support and added JSSE selection for key managers (JAC#821).
-
Added
jacorb.connection.client.ungraceful_shutdown
property. If set to true, the client connection manager will invoke the shutdown method on the connection before closing. The shutdown implementation will break the connecting thread's retries cycle (after the current retry finishes) and will release synchronization locks to allow other threads to close (JAC-44).
-
Added write lock timeouts to GIOP connections for resolving potential thread count build up problem (JAC-63).
- ImR
-
Added ImR POA registration/deregistration so that two Implementation Repositories can run on different hosts and the Notification Service can register with both ImRs (JAC#832).
- Bug Fixes
-
Fix for server IIOP connection's close() method implementation (JAC-75).
-
Fix for J2ME lightweight Naming Service in rebind / unbind (JAC-68).
-
Fix for invocation context loss with nested colocated calls (JAC-64).
-
Fix for portable interceptor ordering issue with colocated calls (JAC-8).
-
Fixed profile selection in bind/rebind for group IOR (IOGR) (JAC-62).
-
Fixed high CPU consuming cause in RequestAnalyser (JAC-51).
-
Fix for loop in GIOPConnection when underlying transport closing fails with exception (JAC-45).
-
Fix for naming context implementation from static to non-static 'orb' field (JAC-41).
-
Fix waiting for request threads completion in
ORB.shutdown ()
(JAC-38).
-
Fix possible loop in connection close (JAC#844).
-
Fix deadlock when
ORB.shutdown ()
is called in the server method's implementation (JAC#836).
-
Fix incorrect processing of type ID of derived type in
orb.Any.read_value ()
(JAC#832).
-
Fix to prevent high CPU consumption in a MIOP client connection's threads (JAC#829).
-
Fix for MIOP domains and object groups processing (JAC#823).
2.3.1.0
- ORB
-
Fix to allow configuration of SSL keystore types and algorithms (JAC#818).
-
New MIOP ETF transport added (JAC#810).
-
Fix for local interceptors to prevent client
PICurrent
being overwritten by a server PICurrent
(JAC#788).
-
Pluggable Expansion policy added to Buffer Manager to allow control of memory allocation. Options are:
-
log (default). For small replies, Buffer Manager allocates buffers bigger than requested to prevent frequent buffer reallocation and reduce memory usage. For buffer sizes in excess of 180MB, Buffer Manager allocates buffers with exactly the requested sizes
-
linear (pluggable). Returns a buffer with exactly the requested size
-
double (pluggable). Returns a buffer with twice the requested size
Stream closure and logging improved (JAC#773).
-
Enhance the build options that are bundled with the JacORB source. For more information, extract the JacORB source file
<DISTRIB_DIR>/src/src.tar.gz
and, using Ant 1.7.1, run ant -projecthelp
on the top level build.xml file. See http://ant.apache.org/manual/running.html#options for more details (JAC#749).
-
Copy the
idl
, dior
and jaco
scripts from the source tree to the distribution bin
directory and patch them so that they work in the new location (JAC#749).
- POA
-
Added synchronization to the POAManager public methods (JAC#752).
- Documentation
-
Add NAT and firewall network configuration section to Programming Guide (JAC#794).
- IDL Compiler
-
Support for typeprefix has been added to the IDL compiler (JAC#753).
-
Support for attribute exceptions (setraises / getraises) has been added to the IDL compiler (JAC#753).
-
Fix
toString
on Union and refactor UnionType (JAC#801).
- Bug fixes
-
Fix for incorrect child POA processing (JAC#798).
-
Fix for decoding and output of IORs with multiple TAG_ALTERNATE_IIOP_ADDRESS (JAC#779).
-
Fix for locating valid ImRs in ORB and in IMRLocator (JAC#777).
-
Fix for potential deadlock in ImRRebindRetryStrategy when communication with current Implementation Repository is broken by network errors (JAC#777).
-
Fix for
NegativeArraySize
exception caused by BufferManager usage in CDROutputStream (JAC#774).
-
Fix for NullPointer access in
org.jacorb.orb.Delegate
(JAC#772).
-
Fix for high CPU load issue on Windows hosts caused by default configuration re-reading (JAC#770).
-
Remove DDS files from JacORB distribution (JAC#765).
-
Fix for IDL compiler issue where a union with an enum discriminator could send through a non-defined value (JAC#755).
2.3.0.4
- ORB
-
Remove
finalize
from Delegate to improve performance and scalability. Client code is now responsible for calling _release
on CORBA Objects as necessary (JAC#741).
-
Fix so the optimised key cache will auto-switch off for both client and server if it detects an older jacorb version (JAC#690).
-
Added
jacorb.key.cacheSize
property to allow the optimised key cache to be configured and improved purging algorithms (JAC#656).
-
Enhanced
disableServiceContextNegotiation
property to disable on both client and server side (and fixed its spelling) (JAC#656).
-
Remove sync from
GIOPConnection.getTransport
to fix deadlock with callback issue (JAC#649).
-
Enhancement to implement the correct use of portable interceptors when dealing with local calls, including the handling of ForwardRequests (JAC#647).
-
Add dummy implementation of
Delegate::_get_component
, which returns null (JAC#645).
-
Enhancement to add the
jacorb.enableNullString
option to marshall null strings (JAC#639).
-
An implementation of the
Object::create_request
operation has been added with an exception list (JAC#631).
-
Allow OAIAddr to be specified when using PortRangeSocketFactory (JAC#629).
-
Split
jacorb.disableServiceContextNegotiatation
into a separate property from jacorb.interop.comet
(JAC#577).
-
Add
Object._get_component ()
to OMG stub code from OMG 03-01-02 (JAC#489).
-
JacORB now implements the Endorsed Standards Override Mechanism as described in http://java.sun.com/j2se/1.5.0/docs/guide/standards/index.html (RTJ#736).
-
Support for client side fault tolerance mechanisms (chapter 23 of the CORBA specification) (JAC#392).
- POA
-
Modified AOMRemovalThread to shutdown on POA destruction (JAC#696).
- IDL Compiler
-
An enhancement has been made to the idl compiler to implement the correct use of portable interceptors when dealing with local calls (JAC#647). idl generated code must be recompiled as the idl compiler changes will now cause failures for cases involving local objects and portable interceptors. This is because:
-
The
SEND_REPLY
or SEND_EXCEPTION
points on the server side will not get called if a call is invoked on a local server. This will result in a BAD_INV_ORDER exception when trying to access attributes that are not available because the call status has not been set to send_reply
or send_exception
.
-
If a ForwardRequest is thrown from
servant_previnoke
(and so the ServantObject is null) a CORBA.UNKNOWN exception will be thrown with the message "local invocations not supported";.
-
Some interception points will not get called, as described above and also at the RECEIVE stages on the client side if an invocation is made to a local servant.
-
Enhancement to the IDL compiler to generate a
toString ()
implementation for Union types (JAC#643).
-
Enhancement to ant
JacIDL
task to pass sloppyidentifiers and i2jpackagefile through, add error checking and add comments to generated code to silence Eclipse warnings (JAC#608).
- Bug fixes
- ORB
-
Fix that allows IORMutator class caching to prevent CDRInputStream and CDROutputStream threads blocking (JAC#722).
-
Fix to propagate objectId to ServerRequestInfo for local calls (JAC#704).
-
Fix for non-configured CDRInputStream when created with an ORBSingleton (JAC#703).
-
Fix to ensure that current contexts are added and cleared correctly when handling embedded calls (JAC#685).
-
Change to ensure that the REQUEST_DURATION_POLICY timeout is not overwritten if an interceptor makes an embedded invocation (JAC#677).
-
Fix so that the idl compiler detects bounds violations for the string type (JAC#676).
-
Change to request handling to ensure that Relative Roundtrip Timeout will bound the entire user invocation including any transparent re-invocations following LOCATION_FORWARD or other retryable exception conditions and also embedded invocations (JAC#670).
-
Fix delegate bind issue to prevent cached object delegate being set to null (JAC#663).
-
Fix a memory leak in Delegate
pending_replies
if an error happens when reading the reply (JAC#662).
-
Fix for Current overwriting in local calls between Client/ServerRequestInfo (JAC#660).
- Fix to reduce the number of threads created when deactivating an object;
backport-util-concurrent.jar
has been added and should be used when the JDK is pre 1.5 (JAC#652).
-
Fix for attribute setting of the
jacorb.security.ssl.client.protocols
and jacorb.security.ssl.server.protocols
properties (JAC#651).
-
Fix for
POA::reference_to_id
error checking (JAC#646).
-
Fix a memory leak in ObjectKeyMap (JAC#642).
-
Fix for NullPointerException within Delegate when multiple threads call release (JAC#630).
-
Workaround fix for InterruptedIOException in IIOPListener from LogKit and native code (JAC#622).
-
Fix for OpenFusion Naming Service hang when the service is stopped and started several times (JAC#609).
-
Fix for initialising the ORB with properties to avoid a
java.lang.ClassCastException
(JAC#600).
-
Fixed issue where a JacORB client does not interact with a reference in a JacORB server after the server becomes active again and the reference is forwarded from an agent (JAC#574).
-
Fixes for rebind behaviour with location forwards/transients (JAC#574 / JAC#579).
-
Fixes for BiDirectional GIOP and SSL (JAC#563).
- IDL Compiler
-
Fix IDL compiler issue with constant long long generation (JAC#737).
-
Fixes for IDL compiler with
genEnhanced
and char sequence (JAC#617).
-
Fixes for DynUnion.to_any () (JAC#590).
-
Fixes for IDL compiler union discriminators (JAC#581).
-
Fixes for IDL compiler struct/typedef/array compilation outside of modules (JAC#572).
- Tools
-
Fix issue on Windows where values are not escaped in jaco.bat (JAC#605).
- ImR
-
Fix an issue that was preventing JacORB servers from registering with the TAO ImR when the TAO ImR runs on a little endian machine (JAC#681).
-
Fix an issue where creating a persistent POA with an already active POA manager instance causes duplicate registrations with the ImR (JAC#680).
2.3.0.3
- bug fixes
- ORB
- Fixed issue where a Repositoryid using pragma prefix with more than 1 space before id caused an idl compiler parse error.
- Property
jacorb.connection.server.reuse_address
added. This enables the socket option for SO_REUSEADDR. Default is off (JAC#567).
- Property
jacorb.dns.eager_resolve
added. If on, allows eager, rather than lazy, dns resolution. Default is on (JAC#542).
- Change default of compactTypecodes to be off (no compaction) (JAC#536).
- Added property
jacorb.imr.passIORcomponent
to ensure that IOR components are also used for registration with the ImR (JAC#531).
- Fixed issue to move access to requestController outside synchronised block to prevent a deadlock (JAC#519).
- Fixed issue where exceptions during AMI did not work if the IDL was specified with pragma prefix (JAC#511).
- IDL Compiler
- Enhance generation to null delegate objects (JAC#555).
- Enhancement to allow the
toString
method on idl generated Struct stubs to print out the contents of a 2 dimensional array (JAC#550).
- Documentation
- Added section about the usage of corbaloc in conjunction with SSL enabled servers (JAC#486).
2.3.0.2
- bug fixes
- ORB
- Changed set_policy_overrides to match 4.3.9.1 of the CORBA 3.0 specification (JAC#493)
- Fixed logging initialisation error in ExceptionHolder (JAC#492)
- Fixed marshalling error: found indirection marker, but no corresponding original typecode (JAC#445)
- IDL
- Fixed an issue in generated code when extracting a sequence from an any (JAC#491)
- Changed generated stub code so that rmi repository id is skipped for idl defined valuetypes (JAC#449)
- Fixed codeset support: enabling utf8 did not have an effect (JAC#461)
- Fixed an issue where holder classes for user-defined exceptions weren't generated (JAC#480)
2.3.0.1
- bug fixes
- ORB
- Fixes for stream closure with sync scope none.
- Fix possible race condition with the value factory hashmap.
- Let POA.reference_to_servant raise BAD_PARAM if a null reference is passed in (JAC#415).
- Fix that allows custom SocketFactory class plugins to specify their dependency on the ORB either as org.jacorb.orb.ORB or org.omg.CORBA.ORB in their constructor (JAC#417).
- Fix for bug during logfile initialisation routine that caused the creation of multiple empty logfiles (JAC#384).
- Fix for broken socket connect timeout mechanism (JAC#375).
- Fixed wstring valuetype interoperability issue with the sun orb (JAC#352).
- Provided an implementation for org.omg.CORBA.ValueBaseHelper (JAC#444).
- IR
- Fix to allow IDL files that use #pragma prefix to be loaded into the IR (JAC#367).
- IDL
- Added -sloppy_identifiers to permit certain illegal identifiers (JAC#441)
- Removed -omg option and replaced it with i2jpackage in idl/build.xml (JAC#72 and JAC#98).
- Native types with pragma prefix org.omg were not processed properly (RTJ#519)
2.3.0.0
IDL
- optimized generated code when using octet sequences.
- The IDL compiler can now generate DII stubs, using the new option "-diistub".
Tools
- Updated 'dior' utility to decode realtime policies.
Security
- SecurityLevel 2 and IAIK support removed.
Documentation
- Enhanced description of configuration properties.
- Improved SSL documentation.
Logging
- singleton ORB uses a logfile if the property jacorb.logfile is set.
General
- JacORB now supports IPv6.
- removed scalability bottleneck due to superflous synchronization.
2.1.3.3
- bug fixes
- ORB
- Fix for synchronization with Codeset conversion buffers.
- Any: use TypeCode.equivalent() instead of TypeCode.equal() in equal() as per specification.
- Any: fix extract_string(), extract_wstring(), didn't account for value being insterted as a stream.
- CDRStreams: fixed support for repeated typecodes.
- fix for POA dispatching with transient objects.
- use new Socket API to specify timeouts during Socket.connect
instead of using our own timeout implementation.
- IDL
- use Any.insert_Value/extract_Value in Helpers for boxed valuetypes.
- fixed invalid handling of forward decl of CORBA::TypeCode.
- improved JacIDL Ant task initialisation.
- fix for valuetype inheritance.
- fix for boxed valuetype with sequences generation.
- fix for the inclusion of the CORBA valuetypes StringValue and WStringValue.
- fixes for line number output and error messages from compiler.
- General
- CDC builds now include Java dummy classes to prevent class not found errors.
- ORB
- Minor performance improvement for enhanced_thread_name.
- CDRStream typecode marshaling cleaned up.
- Any: added better support for Streamable values.
- Added org.jacorb.orb.factory.FixedAddressSocketFactory that binds client sockets to the address specified by the property "OAIAddr".
- Logging additions for debugging.
- Minor enhancement to allow release of client receptor thireads in callback situations not using Bidirectional Policy.
- IDL
- Use any speed accessors like insert_long/extract_long in Helper classes for aliased basetypes.
- Enhance comment in idl generated classes.
- ImR
- Add option so that ImR can be remotely shutdown.
2.1.3.2
- bug fixes
- ORB
- Fix for TCP event notification.
- Correct SSL listener API.
- Fix when writing RMI value types.
- Improved JDK13 compatability for SSLListener.
- Fix for timeout overrides.
- Fix for threadpool thread count.
- Fix for deadlock within ReplyReceiver.
- Fix for DynamicAny to_any.
- Fix for invoking an operation when the ORB has been destroyed.
- Fix for iteration during shutdown.
- ImR
- Fixes for Servers with multiple POAs.
- Fixes for shutdown.
- IDL
- Improve generation for IDL exceptions.
- ORB
- enhanced TCP and SSL logging information by also providing local IP
address and port.
- Change to API for SSLSessionEvent to receive and provide cause of Exception. SSL logging also to provide exception cause.
- optimizations for interceptors within Delegate.
- Added AcceptorExceptionListener for notifications by the
serversocket acceptor thread. NOTE: The default behaviour now is
to shutdown the ORB whenever an Error or SSLException is thrown
by accept() It will only shutdown for SSLExceptions on the first invocations of
accept (). This property may be turned off. See the Acceptor Exception Event Plugin
paragraph under section 3.3 Configuration Properties of the JacORB
ProgrammingGuide.pdf
- Added new configuration property:
jacorb.enhanced_thread_name
to allow additional information to be added temporarily to the Thread name
- Documentation
- Removed IDL compiler from JavaDoc generation.
- Improved command line and property documentation.
2.1.3.1
- bug fixes
- General
- ORB
- Fix memory leaks.
- Fix recursive typecode bug.
- Allow ORBInitializer reinitialization.
- Fix to CDROutputStream to cater for object replacement.
- Improve protocol/IOR rebind handling.
- Fix for deadlock within threadpool.
- Fix OutOfMemory issue when decoding invalid IORs.
- Fix for context key optimization with ORB timeouts.
- Fix for client interceptor send_request forward exception detection and proporgation.
- Fix for is_local determination from interceptors.
- Fix for profile selection with target_requires of NoProtection.
- Fix for interceptors service context propogation.
- Fix for interceptor multithreading and exception handling.
- POA
- Fix creating and destroying POAs using single thread model.
- IDL
- Fixed Union typecode generation bug.
- Fix typedef bounded string generation bug.
- Fix when generating using -ir and -i2jpackage.
- Fix to remove ObjectHelper class generation.
- Interface Repository
- Fix for class names for loading.
- ORB
- Improved performance.
- Support for client protocol properties added.
- Pass SystemException message back in ExceptionDetailMessage service context.
- new property: jacorb.orb_initializer.fail_on_error. Control if errors
caused by an ORBInitializer will make ORB.init() fail or not.
- new property: jacorb.listener.server_socket_timeout. This is a
workaround for Java bug #4344135 and is only useful in conjunction
with the SI&C SSL socket factories.
- new properties: jacorb.connection.client.max_idle_receptor_threads,
jacorb.connection.client.max_receptor_threads,
jacorb.connection.server.max_idle_receptor_threads and
jacorb.connection.server.max_receptor_threads to limit the threadpools
used for client and server side connections.
- new property: jacorb.ignoreComponentInfoProfiles. This forces JacORB to ignore
all codeset component info profiles.
- new properties: jacorb.connection.server.keepalive and
jacorb.connection.client.keepalive to configure TCP KeepAlive on sockets.
- new properties: jacorb.net.tcp_listener and jacorb.security.ssl.ssl_listener for
specifying the respective listener interfaces to receive event notifications.
- Pass SystemException message back in ExceptionDetailMessage service context.
- POA
- new property: jacorb.poa.thread_pool_shared. This is to share a
single thread pool amongst all the POAs.
- IMR
- Added support for failover across subnets using the new properties
jacorb.imr.identifier and jacorb.imr.other_imrs.
- IDL
- Add option (-genEnhanced) to generate toString/equals on stubs. Only implemented
in StructType so far.
- Security
- new property: jacorb.security.randomClassPlugin. Used by developers to plugin their
own SecureRandom initialisation.
- Change to improve information returned by SSLSessionEvent.
- Documentation
- Added chapter on threads to Programming Guide.
- Enhanced logging documentation.
2.1.3
- bug fixes
- POA
- Fix usage of implname with transient and persistent servers.
- ORB
- Improve typecode error checking.
- Fix issue with with multiple SSL servers on same host.
- IDL
- Improve error checking in compiler.
- ORB
- Enhance Any equals for value comparison.
- DynValue idl added.
- IDL
- Documentation
- Improve property documentation.
- General
- Removed Appligator as no longer supported.
2.1.2
- bug fixes
- General
- Fix compilation timing issue.
- ORB
- Add COMET interop service context fix.
- Fix OutOfMemory issue when parsing invalid IORs.
- ORB
- There is a new property jacorb.connection.client.connect_timeout,
which specifies a timeout for the initial TCP/IP connection attempt.
- Removed property jacorb.security.change_ssl_roles and the
associated "Change SSL Roles" feature.
- The new property jacorb.poa.check_reply_end_time specifies
whether any ReplyEndTimePolicy (or RelativeRoundtripTimeoutPolicy)
should also be checked on the server side. This requires that
the clocks of the client and server machine are synchronized to
the same order of magnitude as the timeout. The default for
this property is off, unlike previous releases, where this check
was always done.
- IDL
- Added detail to idl -v output.
- IDL compiler has a new option -in <file> with which it will accept
files that do not end in ".idl"
2.1.1
- bug fixes
- ORB
- Fix for BiDir connections and BAD_INV_ORDER exceptions.
- Fix for ServantActivators and local invocations.
- Fix for reading boolean arrays.
- IDL Compiler
- Tolerate whitespace in #include.
- General
- Fix hexdump logging.
- Improve property documentation.
- ORB
- Added property to disable client orb policies for performance.
2.1
- bug fixes
- ORB
- Fix for recursive assertion with cached typecodes.
- Fix for create_operation_list.
- Fix for marshalling of embedded valuetypes.
- Fix BiDir service context setting on non-bidir connections.
- Connection management problem that resulted in hanging clients.
- Server-side memory leaks (456/458).
- Incompatibility with libraries in existing J2SDK 1.4 installations ("endorsed dir").
- IDL Compiler
- Fix for ValueType generation.
- Fix for ami_callback module packaging and file inclusion.
- General
- Fix logging ORB initialisation and category handling.
- Corrections to exception handling.
- Fix Java Mapping.
- ORB
- Implementation of the ORB PolicyManager interface to set QoS policies ORB-wide.
- CDR 1.2 Portable Interceptor codec.
- Added codeset negotiation.
- Removed jacorb.timestamp (now handled by jacorb.log.default.log_pattern).
- Added WrongTransaction to idl.
- Added DIOP IOR decoding ability.
- Performance Improvements.
- You can now use IORInterceptors to add new profiles to IORs
(rather than just adding components to profiles that were
created by the ORB). To achieve this, the IORInfo object
that is passed to IORInterceptors now implements a special
JacORB interface, org.jacorb.orb.portableInterceptors.IORInfoExt.
This interface provides methods to look up existing profiles
and add new ones to an IOR.
- Rename property jacorb.connection.server_timeout to jacorb.connection.server.timeout, for consistency.
- Added property "jacorb.connection.client.timeout_ignores_pending_messages"
which controls if client-side idle timeouts take care of
pending messages or not.
- Added property "jacorb.connection.client.retry_on_failure"
which controls if network failures on existing connections
should yield a COMM_FAILURE or should trigger a remarshaling
of all pending messages.
- IDL Compiler
- Removed deprecated option -i.
- "-cldc10" option to generate J2ME/CLDC1.0 compatible stub code.
- new option -unchecked_narrow.
- Logging
- Better structured logger name spaces.
- InterfaceRepository
- Documentation and initialisation improvements.
- IMR
- Documentation
- Updated and merged JacIDL HTML into ProgrammingGuide.
- Updated logging component descriptions.
2.0 beta
- ORB
- All QoS timing policies are implemented.
- SyncScopePolicy is implemented.
- The transport layer now conforms to the draft of the
Extensible Transport Framework (ETF, mars/2003-02-01)
(see Programming Guide for details).
- Two new properties, jacorb.poa.queue_wait and
jacorb.poa.queue_min allow the server to block when the
request queue is full.
- Fix for generation of some basic type sequence holders.
- Added server-side connection management
(see programming
guide).
- Added support for GIOP CloseConnection messages.
- Two new properties, jacorb.poa.queue_wait and
jacorb.poa.queue_min allow the server to block when the
request queue is full.
- Added port range server socket factory support.
- Logging
- Added property 'jacorb.logfile.maxLogSize' to support rolling logs.
- IDL Compiler
- Fixed inheritance error (bug 345).
- Now using the Apache logkit loggin API.
Top