docs: @Override
      public int getUOWTimeout() throws IllegalStateException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "getUOWTimeout", this);
  
          final int timeout;
          final int uowType = getUOWType();
  
          switch (uowType) {
              case UOWSynchronizationRegistry.UOW_TYPE_GLOBAL_TRANSACTION:
                  try {
                      timeout = ((EmbeddableTransactionImpl) getUOWScope()).getTimeout();
                  } catch (SystemException e) {
                      final IllegalStateException ise = new IllegalStateException(e);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          Tr.exit(tc, "getUOWTimeout", ise);
                      throw ise;
                  }
                  break;
  
              default:
                  final IllegalStateException ise = new IllegalStateException("Invalid UOW type: " + uowType);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      Tr.exit(tc, "getUOWTimeout", ise);
                  throw ise;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "getUOWTimeout", new Integer(timeout));
          return timeout;
      }