code: public static ConcurrentCompositeConfiguration convertToConcurrentCompositeConfiguration(CombinedConfiguration config) {
          ConcurrentCompositeConfiguration root = new ConcurrentCompositeConfiguration();
          IdentityHashMap<Configuration, String> reverseMap = new IdentityHashMap<Configuration, String>();
          for (String name: (Set<String>) config.getConfigurationNames()) {
              Configuration child = config.getConfiguration(name);
              reverseMap.put(child, name);
          } 
          for (int i = 0; i < config.getNumberOfConfigurations(); i++) {
              Configuration child = config.getConfiguration(i);
              String name = reverseMap.get(child);
              if (child instanceof CombinedConfiguration) {
                  CombinedConfiguration combinedConf = (CombinedConfiguration) child;
                  ConcurrentCompositeConfiguration newConf = convertToConcurrentCompositeConfiguration(combinedConf);
                  root.addConfiguration(newConf, name);
              } else {
                  Configuration conf = new ConcurrentMapConfiguration(child);
                  root.addConfiguration((AbstractConfiguration) conf, name);
              }
          }
          return root;
      }
docs: Convert CombinedConfiguration into {@link ConcurrentCompositeConfiguration} as the later has better performance
  and thread safety.
  
  @param config Configuration to be converted