docs: @Override
      public RecoverableUnitSection createSection(int identity, boolean singleData) throws RecoverableUnitSectionExistsException, InternalLogException
      {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "createSection", new java.lang.Object[] { this, new Integer(identity), new Boolean(singleData) });
  
          // If the parent recovery log instance has experienced a serious internal error then prevent
          // this operation from executing.
          if (_recLog.failed())
          {
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "createSection", this);
              throw new InternalLogException(null);
          }
  
          // Construct a new Integer to wrap the 'id' value in order to use this in the _recoverableUnitSections map.
          Integer sectionId = new Integer(identity);
  
          RecoverableUnitSectionImpl recoverableUnitSection = null;
  
          _controlLock.getSharedLock(LOCK_REQUEST_ID_RUI_CREATESECTION);
  
          if (_recoverableUnitSections.containsKey(sectionId) == false)
          {
              recoverableUnitSection = new RecoverableUnitSectionImpl(_recLog, this, _identity, identity, _controlLock, _logHandle, _storageMode, singleData);
              _recoverableUnitSections.put(sectionId, recoverableUnitSection);
              if (tc.isEventEnabled())
                  Tr.event(tc, "RecoverableUnitImpl '" + _identity + "' created a new RecoverableUnitSection with identity '" + identity + "'");
          }
          else
          {
              if (tc.isEventEnabled())
                  Tr.event(tc, "RecoverableUnitImpl '" + _identity + "' was unable to create a RecoverableUnitSection with id '" + identity + "' as it already exists");
  
              try
              {
                  _controlLock.releaseSharedLock(LOCK_REQUEST_ID_RUI_CREATESECTION);
              } catch (NoSharedLockException exc)
              {
                  FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.RecoverableUnitImpl.createSection", "212", this);
                  if (tc.isEntryEnabled())
                      Tr.exit(tc, "createSection", "InternalLogException");
                  throw new InternalLogException(exc);
              } catch (Throwable exc)
              {
                  FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.RecoverableUnitImpl.createSection", "218", this);
                  if (tc.isEntryEnabled())
                      Tr.exit(tc, "createSection", "InternalLogException");
                  throw new InternalLogException(exc);
              }
  
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "createSection", "RecoverableUnitSectionExistsException");
              throw new RecoverableUnitSectionExistsException(null);
          }
  
          try
          {
              _controlLock.releaseSharedLock(LOCK_REQUEST_ID_RUI_CREATESECTION);
          } catch (NoSharedLockException exc)
          {
              FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.RecoverableUnitImpl.createSection", "232", this);
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "createSection", "InternalLogException");
              throw new InternalLogException(exc);
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "createSection", recoverableUnitSection);
          return recoverableUnitSection;
      }