Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用EditorDriver.setConstraintViolations(Iterable<;ConstraintViolation<;?>;>;违规)不会产生任何效果_Java_Gwt - Fatal编程技术网

Java 调用EditorDriver.setConstraintViolations(Iterable<;ConstraintViolation<;?>;>;违规)不会产生任何效果

Java 调用EditorDriver.setConstraintViolations(Iterable<;ConstraintViolation<;?>;>;违规)不会产生任何效果,java,gwt,Java,Gwt,使用GWT2.5 我有几个单独的bean和编辑器类(我使用SimpleBeanEditorDriver) EditorDriver1编辑Bean1实例,EditorDriver2编辑Bean2,EditorDriver3编辑Bean3,等等 Bean1类公开了几个非基本字段,其中有一个Bean2和一个Bean3实例(但在这里这并不重要,至少我认为它不应该) 当我在EditorDriver1或EditorDriver2上调用EditorDriver.setConstraintViolations方

使用GWT2.5

我有几个单独的bean和编辑器类(我使用SimpleBeanEditorDriver)

EditorDriver1编辑Bean1实例,EditorDriver2编辑Bean2,EditorDriver3编辑Bean3,等等

Bean1类公开了几个非基本字段,其中有一个Bean2和一个Bean3实例(但在这里这并不重要,至少我认为它不应该)

当我在EditorDriver1或EditorDriver2上调用EditorDriver.setConstraintViolations方法时(我在EditorDriver1上调用它,然后在EditorDriver2上调用它,但是-抱歉,我重复我自己:)-我认为这一点都不重要),一切都很好。错误会显示在屏幕上。如果我在setConstraintViolations()之后调用getErrors(),我可以看到错误就在那里。 当我对EditorDriver3执行相同的操作时(我按照相同的顺序执行:在EditorDriver1和EditorDriver3之后),getErrors()在setConstraintViolations()之后返回一个空列表

我已经调试了一段时间,比较了ConstraintViolation、EditorDriver和delegate maps对象,但是我没有发现它们之间有任何有意义的区别,这可以解释不同的行为。 以防万一,我也检查了GWT的Github问题,但找不到任何与此问题足够相似的问题

关于调试时要注意的事项、要测试的事项或要搜索的特定线索,您有什么想法吗? 多谢各位

我注意到的一件事是,如果我自己伪造ConstraintViolation对象(而不是从验证器的validate方法中获取),它就可以工作。
我在ConstraintViolation中看到的唯一区别是,我伪造的ConstraintViolation同时具有desc和elementType null(而不是分别引用验证器和字段)。

如果根本看不到任何代码,就很难太具体,但是编辑器本身不会处理错误,除非它们碰巧实现了
HasEditorErrors
(如gxt的字段或
ValueBoxEditorDecorator
。事实上,您可以伪造一个违规,并且它可以工作,这表明您至少拥有正确的编辑器……但如果您决定进行调试,SimpleVolation#IterablefromConstructionViolations和#pushViolations是要深入研究的两种方法,以确保违规被正确转换为int。)o一个错误,并传递给代表,然后ErrorCollector将其全部绘制出来。不幸的是,我可能无法找到更多的时间来深入研究它,但如果我能腾出足够的时间,我会记住这些建议(如果能找出问题所在,我会很高兴…),谢谢。如果您可以共享更多代码,或者至少有足够的代码来演示这个问题,我相信像我这样的人也会很乐意深入研究。我找到了原因,主要是因为运气。Editor1由多个私人编辑器(E1A、E1B等)组成,并通过(公共或包保护)提供对E1A/E1B值的直接访问getters。根据我的getters在Editor1中的顺序(它们出现在源文件中!),我会得到不同的行为。如果LeafValueEditor后面跟着HasEditorError,则不会通知此HasEditorError错误。顺序确实会影响瞬态生成的类型代码(它会生成不同的输出),但我认为我必须尝试生成一个最小的测试用例来隔离问题。