docs: public void contextChange(int typeOfChange) throws IllegalStateException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          {
              String type = "UNKNOWN";
              switch (typeOfChange)
              {
              case UOWCallback.PRE_BEGIN:
                  type = "PRE_BEGIN";
                  break;
              case UOWCallback.POST_BEGIN:
                  type = "POST_BEGIN";
                  break;
              case UOWCallback.PRE_END:
                  type = "PRE_END";
                  break;
              case UOWCallback.POST_END:
                  type = "POST_END";
                  break;
              }
  
              Tr.entry(tc, "contextChange", type);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) Tr.debug(tc, "UOWCurrent", _uowCurrent);
  
          //
          // Need to get the current UOWCoordinator if 
          // we are in POST_BEGIN or PRE_END
          //
          UOWCoordinator coord = null;
  
          if ((typeOfChange == UOWCallback.POST_BEGIN) || (typeOfChange == UOWCallback.PRE_END))
          {
              coord = _uowCurrent.getUOWCoord();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) Tr.debug(tc, "Coordinator="+coord);
  
          IllegalStateException ex = null;
  
          //
          // Inform the registered callbacks
          //
          for (int i = 0; i < _callbacks.size(); i++)
          {
              UOWCallback callback = _callbacks.get(i);
  
              try
              {
                  callback.contextChange(typeOfChange, coord);
              }
              catch (IllegalStateException ise)
              {   
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) Tr.debug(tc, "Exception caught during UOW callback at context change", ise);
                  ex = ise;
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) Tr.exit(tc, "contextChange");
  
          //
          // If one of the callbacks threw an exception 
          // then rethrow here. In practice the last exception 
          // to be thrown will be re-thrown but as long as 
          // we throw it doesn't matter.
          //
          if (ex != null)
          {
              throw ex;
          }
      }