code: protected UserTransaction getUserTransaction(boolean injection, Object injectionContext) throws NamingException
      {
          final UserTransaction ut = AccessController.doPrivileged(new PrivilegedAction<UserTransaction>() {
              @Override
              public UserTransaction run() {
                  return userTranSvcRef.getBundle().getBundleContext().getService(userTranSvcRef);
              }
          });
          final UserTransactionDecorator utd = getUserTransactionDecorator();
          if (utd == null) {
              return ut;
          } else {
              return utd.decorateUserTransaction(ut, injection, injectionContext);
          }
      }
docs: Helper method for use with injection TransactionObjectFactoruy.
  
  @param injection if the UserTransaction is being obtained for injection
  @param injectionContext the injection target context if injection is true, or null if unspecified
  @return UserTransaction object with decorator applied if present
  @throws NamingException if the decorator determines the UserTransaction is not available