protected void assertFids(Set fids) throws FeatureLockException {
   InProcessLockingManager lockingManager = getInProcessLockingManager();
   if (lockingManager == null) {
     return; // subclass is doing its own thing
   }
   Transaction t = getTransaction();
   String typeName = getSchema().getTypeName();
   String fid;
   for (Iterator i = fids.iterator(); i.hasNext(); ) {
     fid = (String) i.next();
     lockingManager.assertAccess(typeName, fid, transaction);
   }
 }
 /**
  * Release indicated featureID, must have correct authroization.
  *
  * @param typeName
  * @param featureID
  * @param transaction
  * @param featureLock
  * @throws IOException If lock could not be released
  */
 public synchronized void unLockFeatureID(
     String typeName, String featureID, Transaction transaction, FeatureLock featureLock)
     throws IOException {
   assertAccess(typeName, featureID, transaction);
   locks(typeName).remove(featureID);
 }