public Iterator<String> getKeys() throws ConcurrentModificationException
    {
        Set<String> keys = new LinkedHashSet<String>();
        for (Iterator<String> it = overrideProperties.getKeys(); it.hasNext();) {
            keys.add(it.next());
        }
        for (Configuration config : configList)
        {
            for (Iterator<String> it = config.getKeys(); it.hasNext();)
            {
                try {
                    keys.add(it.next());
                } catch (ConcurrentModificationException e) {
                    logger.error("unexpected exception when iterating the keys for configuration " + config 
                            + " with name " + getNameForConfiguration(config));
                    throw e;
                }
            }
        }

        return keys.iterator();
    }
public Iterator<String> getKeys() throws ConcurrentModificationException
    {
        Set<String> keys = new LinkedHashSet<String>();
        for (Iterator<String> it = overrideProperties.getKeys(); it.hasNext();) {
            keys.add(it.next());
        }
        for (Configuration config : configList)
        {
            for (Iterator<String> it = config.getKeys(); it.hasNext();)
            {
                try {
                    keys.add(it.next());
                } catch (ConcurrentModificationException e) {
                    logger.error("unexpected exception when iterating the keys for configuration " + config 
                            + " with name " + getNameForConfiguration(config));
                    throw e;
                }
            }
        }

        return keys.iterator();
    }
public Iterator < String > getKeys ( ) throws ConcurrentModificationException { Set < String > keys = new LinkedHashSet < String > ( ) ; for ( Iterator < String > it = overrideProperties . getKeys ( ) ; it . hasNext ( ) ; ) { keys . add ( it . next ( ) ) ; } for ( Configuration config : configList ) { for ( Iterator < String > it = config . getKeys ( ) ; it . hasNext ( ) ; ) { try { keys . add ( it . next ( ) ) ; } catch ( ConcurrentModificationException e ) { logger . error ( "unexpected exception when iterating the keys for configuration " + config + " with name " + getNameForConfiguration ( config ) ) ; throw e ; } } } return keys . iterator ( ) ; }
Get all the keys contained by sub configurations.

@throws ConcurrentModificationException if concurrent modification happens on any sub configuration
when it is iterated to get all the keys
Get all the keys contained by sub configurations .