docs: ExtendedConfigurationImpl deserializeConfigurationData(String pid) throws IOException {
          ExtendedConfigurationImpl config = null;
          File configFile = persistedConfig.getConfigFile(pid);
          if (configFile != null) {
  
              if (configFile.length() > 0) {
  
                  FileInputStream fis = null;
                  ObjectInputStream ois = null;
  
                  try {
                      fis = new FileInputStream(configFile);
                      ois = new ObjectInputStream(new BufferedInputStream(fis));
                      @SuppressWarnings("unchecked")
                      Dictionary<String, Object> d = (Dictionary<String, Object>) ois.readObject();
                      String location;
                      location = (String) ois.readObject();
                      ois.readBoolean();
                      @SuppressWarnings("unchecked")
                      Set<ConfigID> references = (Set<ConfigID>) ois.readObject();
                      @SuppressWarnings("unchecked")
                      Set<String> uniqueVariables = (Set<String>) ois.readObject();
  
                      String factoryPid = (String) d.get(ConfigurationAdmin.SERVICE_FACTORYPID);
                      VariableRegistry variableRegistry = caFactory.getVariableRegistry();
                      for (String variable : uniqueVariables) {
                          variableRegistry.addVariable(variable, ConfigAdminConstants.VAR_IN_USE);
                      }
  
                      config = new ExtendedConfigurationImpl(caFactory, location, factoryPid, pid, d, references, uniqueVariables);
                  } catch (ClassNotFoundException e) {
                      throw new IOException(e);
                  } finally {
                      ConfigUtil.closeIO(ois);
                      ConfigUtil.closeIO(fis);
                  }
              }
          }
  
          return config;
      }