Intellij Idea's debugger renders object to string in object view (Preferences -> Build, Execution, Deployment -> Debugger -> Data Views -> Java -> Enable 'toString()' object view). This behavior is enabled by default and it leads some strange problem when debug in Dubbo, for examples: #2431, or user may observe a ReferenceConfig may init twice or ReferenceConfig#urls may have two same entries if the breakpoint happens to set in the relevant places. You may interested in looking into the details from http://t.cn/EAhta27, where @code4wt gives the excellent analysis.
}
                    }
                    if (value == null || value.length() == 0) {
                        String pn = prefix + property;
                        value = System.getProperty(pn);
                        if (!StringUtils.isBlank(value)) {
                            logger.info("Use System Property " + pn + " to config dubbo");
                        }
                    }
                    if (value == null || value.length() == 0) {
                        Method getter;
                        try {
                            getter = config.getClass().getMethod("get" + name.substring(3));
                        } catch (NoSuchMethodException e) {
                            try {
                                getter = config.getClass().getMethod("is" + name.substring(3));
                            } catch (NoSuchMethodException e2) {
                                getter = null;
                            }
                        }
                        if (getter != null) {
                            if (getter.invoke(config) == null) {
                                if (config.getId() != null && config.getId().length() > 0) {
                                    value = ConfigUtils.getProperty(prefix + config.getId() + "." + property);
                                }
                                if (value == null || value.length() == 0) {
                                    value = ConfigUtils.getProperty(prefix + property);
                                }
                                if (value == null || value.length() == 0) {
                                    String legacyKey = legacyProperties.get(prefix + property);