Tue Nov 10 16:00:00 2000 Don Hudson * tao/Object_Adapter.h Add missing TAO_Export macros. Tue Oct 31 09:14:47 2000 Paul Calabrese * orbsvcs/Notify_Service/Notify_Service.dsp Modify project to place release executable in the Release directory. Thu Oct 26 14:55:45 2000 Paul Calabrese * tests/DynAny_Test/test_dynsequence.cpp: Fix memory management problems in the sequence test. This was causing the test to abort on Windows. Thu Oct 26 09:49:33 2000 Paul Calabrese * tests/Connection_Purging/run_test.pl: * performance-tests/Cubit/TAO/MT_Cubit/run_test.pl: Fix a problem on Windows. The call to Process::Create should pass the executable name as the first parameter and the arguments as the second. It was passing both as the first parameter (with no second parameter). Wed Oct 25 14:44:47 2000 Paul Calabrese * tests/DSI_Gateway/DSI_Gateway.dsw: * tests/DSI_Gateway/server.dsp: * tests/DSI_Gateway/client.dsp: * tests/DSI_Gateway/gateway.dsp: Add new project/workspace files for this test. Wed Oct 25 14:07:18 2000 Paul Calabrese * orbsvcs/tests/EC_Custom_Marshal/EC_Custom_Marshal.dsw: * orbsvcs/tests/EC_Custom_Marshal/ECM_Supplier.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECM_Consumer.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Supplier.dsp: * orbsvcs/tests/EC_Custom_Marshal/ECCM_Consumer.dsp: Get rid of the ECCM projects and replace them with ECM projects so that the names match those used in run_test.pl. Wed Oct 25 13:48:09 2000 Paul Calabrese * orbsvcs/tests/Event/Basic/Timeout.cpp: Reduce the timeout interval on the deadline timer. The current value was causing failures on Windows related to the timer resolution. * orbsvcs/tests/Event/Basic/run_test.pl: Bump up the timeout on the Random test. It doesn't reliably run in 60 seconds under windows. Bumped it to 90. Wed Oct 25 12:02:56 2000 Paul Calabrese * examples/Load_Balancing/Load_Balancing.dsw: * examples/Load_Balancing/load_balancer.dsp: Add a missing project. Wed Oct 25 11:38:28 2000 Paul Calabrese * performance-tests/Cubit/TAO/IDL_Cubit/run_tests.pl: Fix script to work under Windows. The Process::Wait() call with no arguments was causing an error. Wed Oct 25 11:32:55 2000 Paul Calabrese * tests/Faults.dsw: * tests/middle.dsp: Added a missing project file so we can run under Windows. Wed Oct 25 08:23:34 2000 Chad Elliott * performance-tests/Cubit/TAO/MT_Cubit/Globals.h Modified the SCHED_PRIORITY macro for HPUX only. The original priority was above the maximum and would cause a run-time failure. Fri Oct 20 14:53:12 2000 Chris Cleeland * tao/ORB_Core.cpp (fini): Removed code that unbound the ORB from the ORB table. This is now taken care of by the loop in the ORB Table's DTOR added in ChangeLogTag:Wed Oct 11 15:51:15 2000 Chris Cleeland . Fri Oct 20 13:38:31 2000 Chad Elliott * examples/Simulator/Event_Supplier/DualEC_Sup.cpp * examples/Simulator/Event_Supplier/Event_Con.cpp These two files belong with the previous change. Thu Oct 19 11:59:48 2000 Chad Elliott * examples/Simulator/Event_Supplier/Event_Sup.cpp: * examples/Simulator/Event_Supplier/Logging_Sup.cpp: Move the include of below the includes for TAO. HP-UX needs the _HPUX_SOURCE macro defined before the inclusion of to get the proper prototypes. limits.h includes , but the HP config header in ACE sets the macro. So, include limits.h after the ace config header. Thu Oct 19 11:12:29 2000 Paul Calabrese * orbsvcs/LifeCycle_Service/Makefile: Move some code below some includes so that this server actually builds. You need to do this because the code is checking for minimum_corba and that flag is not set until wrapper_macros.GNU is included. Wed Oct 18 15:05:59 2000 Chris Cleeland * tao/Sequence_T.cpp: * tao/Sequence_T.i: Moved two allocbuf() methods from the inline to the .cpp for the Bounded and Unbounded array sequence templates. They cause SunWorkshop 4.2 grief during compiles because the compiler couldn't find a definition for one of the template parameters. Moving it into .cpp got the compiler unconfused. Tue Oct 17 13:43:10 2000 Paul Calabrese * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.h: * orbsvcs/orbsvcs/Event/EC_Basic_Filter_Builder.cpp: Improve the basic (default) filter builder so that it works with logical AND and bitmask filters. Note that the nesting of filters in the basic filter builder is still limited, but this allows more of the new filters to be used with this builder. Wed Oct 11 15:51:15 2000 Chris Cleeland * tao/ORB_Core.cpp (TAO_ORB_Table): Fix DTOR loop per Ossama [couldn't find Ossama's ChangeLog entry]. Wed Oct 11 15:23:48 2000 Chris Cleeland Applied DOC patches, ChangeLogTag Mon Sep 11 12:53:03 2000 Ossama Othman. * tao/Exception.i: Initialize ref_count_ member to one. This fixes an off-by-one reference count error since the reference count value is initialized to zero by default since it is an ACE_Atomic_Op variable. * tao/Exception.cpp (fini): Invoke CORBA::ExceptionList::_destroy() instead of invoking the delete operator on the system exceptions list since a CORBA::ExceptionList is reference counted. Similarly, invoke CORBA::release() on the CORBA::_tc_UnknownUserException variable since it is also reference counted. Mon Oct 9 13:53:55 2000 Chris Cleeland * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp (start_server_i): Removed the use of type 'bool' as a flag in this function because Sun C++ 4.2 couldn't digest that. It's now an 'int', which it should have been in the first place. Note that this patch is terminal, i.e., DOC solved this problem differently. But, since it introduces new features, I couldn't easily incorporate it. Fri Oct 6 13:32:13 2000 Paul Calabrese * orbsvcs/tests/Event/lib/Driver.cpp: Changed priority used for threads when not using FIFO scheduling. This is to avoid some weirdness peculiar to Solaris 2.8. On this OS, using the minimum priority as returned by ACE_Sched_Params::get_min_priority() to create a thread results in an error and the thread not being created. This test was doing this and failing. I modified the test to use the minimum priority of the FIFO scheduling class (which is what the corresponding ACE tests do). Fri Oct 6 08:41:46 2000 Steve Totten * docs/ORBEndpoint.html Updated documentation for the syntax of SHMIOP endpoints. The address portion of a SHMIOP endpoint should be just a port number, as in the following example: -ORBEndpoint shmiop://10755/priority=50 TAO will accept "host:port" or ":port", but does not use the port you specify and chooses one instead. Ossama Othman will make a corresponding update to DOC's documentation. Fri Sep 29 08:17:19 2000 Chad Elliott Applied Jeff Parsons' patches. * orbsvcs/tests/ImplRepo/README: Updated list of command line options for the perl script, to reflect the new tests that have been added (persistence test and ImR NT service test). Also added documentation on the NT service test. * orbsvcs/tests/Implrepo/run_test.pl: Added tests for persistent ImR and ImR as NT service. * docs/implrepo/usersguide.html: Added section on running the Implementation Repository as an NT service. * orbsvcs/ImplRepo_Service/NT_ImplRepo_Service.dsp: * orbsvcs/ImplRepo_Service/NT_ImplRepo_Service.cpp: * orbsvcs/ImplRepo_Service/NT_ImplRepo_Service.h: * orbsvcs/ImplRepo_Service/NT_ImplRepo_Server.dsp: New files which build the Implementation Repository as an NT service. * orbsvcs/ImplRepo_Service/Options.cpp: * orbsvcs/ImplRepo_Service/Repository.cpp: * orbsvcs/ImplRepo_Service/tao_imr_i.cpp: Cosmetic changes to all the above files. Fri Sep 29 08:45:30 2000 Paul Calabrese * orbsvcs/tests/Event/lib/Counting_Supplier.cpp Moved the explicit template instantiation to the top of the file. This fixes a compilation problem with Sun C++ 5.0. Tue Sep 19 12:20:37 2000 Chad Elliott * tao/TAO.dsp tao/TAO_Static.dsp I forgot to add the Bind_Dispatcher_Guard files to the Windows Project file. Tue Sep 19 10:46:15 2000 Chad Elliott * tao/Invocation.cpp: Used the Bind_Dispatcher_Guard to bind and unbind the dispatchers * tao/Makefile Add the Bind_Dispatcher_Guard files. * tao/Bind_Dispatcher_Guard.h * tao/Bind_Dispatcher_Guard.i * tao/Bind_Dispatcher_Guard.cpp Guard class to unbind a dispatcher as it goes out of scope. Thanks Carlos for helping me out with this one. Thu Sep 14 15:49:48 2000 Chad Elliott Partially applied Carlos O'Ryans patch. * tao/Invocation.cpp: Reset the reply_received flag in Invocation::start() This fixes some misterious race conditions that showed up when receiving forward locations in a follower thread, there is a regression test for the problem (tests/Forwarding). Tue Sep 5 10:51:53 2000 Chad Elliott * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.cpp * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Read.i * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.cpp * orbsvcs/orbsvcs/ESF/ESF_Copy_On_Write.i Moved some methods from inline to the .cpp. This is a workaround for the SunCC 4.2 Compiler patch level 104631-07. Thu Aug 31 12:42:27 2000 Chad Elliott Applied Jeff Parsons changes to correct a potential memory leak. * tao/DynAnyC.i: * tao/ImplRepoC.i: * tao/InterceptorC.i: * tao/InterfaceC.i: * tao/MessagingC.i: * tao/RTCORBAC.i: * tao/Sequence.cpp: * tao/Sequence.i: * tao/Sequence_T.i: * tao/Services.i: * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp: * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ci.cpp: In the sequence get_buffer operation, in the case where the orphan argument is 0 and the buffer has not yet been allocated, we needed to set the sequence's release_ member to 1 after allocating the buffer. Otherwise there is a potential memory leak. Thanks to Chad Elliott for getting the ball rolling by tracking this down in CONV_FRAMEC.i. Mon Aug 25 10:40:29.60 2000 Paul Calabrese * orbsvcs/CosEvent_Service/CosEvent_Service.dsp * orbsvcs/orbsvcs/CosEvent_Utilities.h * orbsvcs/orbsvcs/CosEvent_Utilities.cpp: Broke the (unnecessary) dependency between CosEvent and RTSched libraries by changing the type of a variable. Tue Aug 22 15:07:45 2000 Rick Stille Added MFC configurations to the following files: TAO\orbsvcs\orbsvcsAV.dsp TAO\orbsvcs\orbsvcsCosConcurrency.dsp TAO\orbsvcs\orbsvcsCosEvent.dsp TAO\orbsvcs\orbsvcsCosLifeCycle.dsp TAO\orbsvcs\orbsvcsCosNaming.dsp TAO\orbsvcs\orbsvcsCosNotification.dsp TAO\orbsvcs\orbsvcsCosProperty.dsp TAO\orbsvcs\orbsvcsCosTime.dsp TAO\orbsvcs\orbsvcsCosTrading.dsp TAO\orbsvcs\orbsvcsDsLogAdmin.dsp TAO\orbsvcs\orbsvcsLoadBalancing.dsp TAO\orbsvcs\orbsvcsRTEvent.dsp TAO\orbsvcs\orbsvcsRTOLDEvent.dsp TAO\orbsvcs\orbsvcsRTSched.dsp TAO\orbsvcs\orbsvcsRTSchedEvent.dsp TAO\orbsvcs\orbsvcsSvc_Utils.dsp apps\gperf\src\gperf.dsp apps\gperf\src\gperf_lib.dsp TAO\TAO_IDL\tao_idl.dsp Mon Aug 7 14:41:47 2000 Steve Totten Applied Kirthika Parameswaran's patch to correct a spelling error in tao/corba.h. Fri Aug 4 18:50:00 2000 Kirthika Parameswaran * tao/corba.h: Rectified spelling mistake in checking whether the smart proxy feature was available. Fri Aug 4 14:49:04 2000 Chad Elliott * tao/CONV_FRAMEC.i Corrected a memory leak of one byte per invocation. Thanks to Paul Carreiro for providing information on how to reproduce this problem. Fri Aug 4 13:45:20 2000 Chanaka Liyanaarachchi * orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.cpp Corrected the error in id assignment which caused problems when creating and destroying multiple event channels. Thanks to Wilson Chan for reporting the problem and providing a fix. Fri Aug 4 13:32:44 2000 Chanaka Liyanaarachchi * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp Corrected the error in the condition which was used to delay forwarding to the client till the server has been succesfully pinged by ImR. Thanks to Bruce McIntosh for providing the fix. Fri Aug 4 12:54:45 2000 Rick Stille Added the following files to the Visual C++ TAO.dll project (TAO/tao/TAO.dsp): Asynch_Reply_Dispatcher.cpp DII_Invocation.cpp DII_Reply_Dispatcher.cpp Exclusive_TMS.cpp Synch_Reply_Dispatcher.cpp Wait_On_Leader_Follower.cpp Wait_On_Reactor.cpp Wait_On_Read.cpp Muxed.TMS.cpp Tue Jul 25 12:19:29 2000 Chad Elliott * rules.tao.GNU Removed references to the true executable. This didn't seem to work when building for VxWorks with NT as the host. Mon Jul 24 14:00:19 2000 Chad Elliott Applied Jeff Parsons' patches. * TAO_IDL/be/be_visitor_exception/exception_cs.cpp: * TAO_IDL/be/be_visitor_interface/interface_ss.cpp: * TAO_IDL/be/be_visitor_operation/ami_cs.cpp: * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp: * TAO_IDL/be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp: * TAO_IDL/be/be_visitor_operation/operation_cs.cpp: * TAO_IDL/be/be_visitor_operation/operation_ss.cpp: Removed extra set of parentheses generated when using the native 'throw' keyword. Thanks to Alex Hornby for reporting this bug. Mon Jul 3 09:43:45 2000 Chad Elliott Applied patches from Carlos O'Ryan and Balachandran Natarajan Fri Jun 16 12:07:39 2000 Carlos O'Ryan * The following changes fix the [BUGID:175] and [BUGID:266] bugs. * tao/Makefile: * tao/Makefile.am: * tao/Makefile.bor: Add new files to the Makefiles * tao/Reply_Dispatcher.h: * tao/Reply_Dispatcher.i: * tao/Reply_Dispatcher.cpp: Moved each one of the reply dispatcher implementations to a separate file. Removed the leader_follower_condition_variable method because it only make sense for synchronous reply dispatchers. Add new methods to: + get a callback when the dispatcher is bound to the transport muxing strategy: this simplifies the interactions with other components in the pluggable protocol framework. + get a callback is the connection is closed: this is the main change to fix [BUGID:266] * tao/Asynch_Reply_Dispatcher.h: * tao/Asynch_Reply_Dispatcher.i: * tao/Asynch_Reply_Dispatcher.cpp: The asynchronous reply dispatchers. When the connection_closed() method is invoked a COMM_FAILURE exception is raised. * tao/Synch_Reply_Dispatcher.h: * tao/Synch_Reply_Dispatcher.i: * tao/Synch_Reply_Dispatcher.cpp: The synchornous reply dispatchers. The connection_closed() method simply sets the reply_received flag and signals the waiting thread (throught the Waiting_Strategy). Then the dispatcher is bound to the waiting thread the right condition variable is fetched. * tao/DII_Reply_Dispatcher.h: * tao/DII_Reply_Dispatcher.i: * tao/DII_Reply_Dispatcher.cpp: Very similar to the asynchornous reply dispatchers, but using DII under the hood. * tao/Leader_Follower.h: * tao/Leader_Follower.i: Add new set_upcall_thread. If the leader thread is invoking a possibly long running upcall (such as a Request, LocateRequest or AMI Reply) the method should be invoked to elect a new leader thread and avoid dead-locks. Refactor the reset_event_loop_thread() to a separate method. Moved some of the inline methods around so they are defined in the right order. * tao/GIOP_Message_Acceptors.cpp: Whenever an upcall is received the set_upcall_thread() method is invoked on the leader follower set. That give us an opportunity to wake up another thread to become the leader. This is part of the fixes for [BUGID:175] * tao/Invocation.h: This file needs to include Synch_Reply_Dispatcher now. * tao/Asynch_Invocation.h: * tao/Asynch_Invocation.i: * tao/Asynch_Invocation.cpp: Move the DII Invocation to its own file. * tao/DII_Invocation.h: * tao/DII_Invocation.i: * tao/DII_Invocation.cpp: New file for the DII (deferred) invocations. This decouples other components in the ORB from the DII support. * tao/Transport_Mux_Strategy.h: * tao/Transport_Mux_Strategy.cpp: * Exclusive_TMS.h: * Exclusive_TMS.cpp: * Muxed_TMS.h: * Muxed_TMS.cpp: Moved the transport muxing strategies to their own files. The muxing strategy propagate the connection_closed() message to all the reply dispatchers waiting on that connection. * tao/Wait_Strategy.h: * tao/Wait_Strategy.cpp: * tao/Wait_On_Read.h: * tao/Wait_On_Read.cpp: * tao/Wait_On_Reactor.h: * tao/Wait_On_Reactor.cpp: * tao/Wait_On_Leader_Follower.h: * tao/Wait_On_Leader_Follower.cpp: Move the waiting strategies to separate files. Remove the handle_input() method. The Event_Handlers for each protocol call the Transport's handle_client_input directly. In the old days the handle_input method ensured that the leader follower mutex was acquired during the event processing, so when signaling a Synch_Reply_Dispatcher the changes were protected by the right mutex. Now we just acquire the mutex when needed, the Reply_Dispatcher invokes the new method to let us change the state and signal the condition variables in a thread safe way. So in the old days we had the following control flow: Reactor -> Event_Handler -> Wait_Strategy (acquire lock) -> Transport (read data) -> Reply_Dispatcher now we have Reactor -> Event_Handler -> Transport -> Reply_Dispatcher -> Wait_Strategy (lock and signal) <- return to Reply Dispatcher the new path is easier to analyze and understand. It could be simplified even further, but that would require more classes and a better understanding of how we will implement pluggable messaging. Add a new connection_closed() method to wake up any threads when the connection is suddenly closed, in the old days we did this by detecting that the handle_client_input() method returned an error. * tao/ORB_Core.cpp: The event loop thread can loose its leader role as part of making an upcall (see the new set_upcall_thread) method. We need to acquire the event loop thread role after each return from handle_events(). This is part of the fixes for [BUGID:175] * tao/IIOP_Connect.cpp: * tao/SHMIOP_Connect.cpp: * tao/UIOP_Connect.cpp: Must invoke the transport's handle_client_input directly. * tao/IIOP_Transport.cpp: * tao/SHMIOP_Transport.cpp: * tao/UIOP_Transport.cpp: If the connection is closed invoke the connection_closed() callback on the transport muxing strategy. * tao/default_client.cpp: This is the only place where the new header files for all the strategies (Wait, Muxing, etc.) are needed. * tao/Stub.cpp: Neeeds the new DII_Invocation header file. * tao/GIOP_Message_Lite.h: * tao/IIOP_Profile.cpp: * tao/Pluggable.h: * tao/Pluggable.cpp: * tao/UIOP_Transport.h: * tao/SHMIOP_Transport.h: * tests/Connection_Purging/Connection_Purging.cpp: Cosmetic fixes, mostly white space at the end of lines. * tao/InterfaceC.cpp: After cleaning up some header files this #include was missing. * tests/Makefile: * tests/LongUpcalls/Makefile: * tests/LongUpcalls/Test.idl: * tests/LongUpcalls/run_test.pl: * tests/LongUpcalls/svc.conf: * tests/LongUpcalls/LongUpcalls.dsw: * tests/LongUpcalls/AMI_Manager.h: * tests/LongUpcalls/AMI_Manager.cpp: * tests/LongUpcalls/Controller.h: * tests/LongUpcalls/Controller.cpp: * tests/LongUpcalls/Manager.h: * tests/LongUpcalls/Manager.cpp: * tests/LongUpcalls/Manager_Handler.h: * tests/LongUpcalls/Manager_Handler.cpp: * tests/LongUpcalls/ami_client.cpp: * tests/LongUpcalls/ami_client.dsp: * tests/LongUpcalls/ami_server.cpp: * tests/LongUpcalls/ami_server.dsp: * tests/LongUpcalls/blocking_client.cpp: * tests/LongUpcalls/blocking_client.dsp: * tests/LongUpcalls/blocking_server.cpp: * tests/LongUpcalls/blocking_server.dsp: New test to check that there are no dead-locks during long callbaks. One of the tests (ami_client) is not working, but is not part of the bugs that I tried to fix. We need something like [BUGID:575] to get this one right. * tests/InterOp-Naming/Makefile: Update dependencies * tests/Endpoint_Per_Priority/client.cpp: * tests/Endpoint_Per_Priority/server.cpp: Fixed comments and debug messages. * tests/MT_Client/client.conf: Using a null lock is not a good idea here. Fri Jun 16 15:33:34 2000 Balachandran Natarajan * tao/GIOP_Message_Connectors.cpp (write_request_header): * tao/GIOP_Message_Accept_State.cpp: Adjusted the padding of the request header to generate right GIOP 1.2 messages. This should solve the interoperability problem that was reported by Hamed Azizadah .