docs: public boolean storeUserData(long instanceid, long data)
      throws IOException,
      FileManagerException
      {
          if ( instanceid == 0 ) {
              return false;
          }
          for ( int i = 0; i < NUM_USER_WORDS; i++ ) {
              if ( userData[i][0] == instanceid ) {
                  userData[i][1] = data;
                  writeUserData(i);
                  return true;
              }
          }
  
          //
          // If we fall through then this is the first time.  Now search for an
          // opening.
          //
          for ( int i = 0; i < NUM_USER_WORDS; i++ ) {
              if ( userData[i][0] == 0 ) {
                  userData[i][0] = instanceid;
                  userData[i][1] = data;
                  writeUserData(i);
                  return true;
              }
          }
  
          //
          // If we fall through then all userdata slots are filled. Throw an
          // exception so caller knows why he's hosed.
          //
          throw new FileManagerException("storeUserdata: No remaining slots");
      }