because it happened inside debugger evaluation

  1. 问题
    调试代码的时候,发现有些变量赋值的代码没有进断点,就莫名其妙就被赋值了。because it happened inside debugger evaluation_第1张图片此时schemaMappingsLocation和schemaMappings的值都为null,按下F8because it happened inside debugger evaluation_第2张图片schemaMappingsLocation被赋值是正常的,schemaMappings的值怎么也有了???
    同时idea左下角有一个如下图的提示
    because it happened inside debugger evaluation_第3张图片2. 排查
    发现schemaMappings在PluggableSchemaResolver类的toString被使用
	public String toString() {
		// getSchemaMappings()中初始化了schemaMappings
		return "EntityResolver using mappings " + getSchemaMappings();
	}

3.解决
使用idea调试时,会默认调用实例的toString方法,并忽略toString使用的方法中的断点。在设置中关掉自动执行toString即可。
because it happened inside debugger evaluation_第4张图片

你可能感兴趣的:(开发工具)