0

I try to handle a Summernote Keyup event with this:

myEditor.addSummernoteKeyUpHandler(new SummernoteKeyUpHandler() {

        @Override
        public void onSummernoteKeyUp(final SummernoteKeyUpEvent event) {
            // TODO Auto-generated method stub
            log.fine("hello");
        }

    });

I get a UmbrellaException which is IMHO a class cast exception.

This is the call stack enter image description here

I identified the following spot where te cast failes:

@HasNoSideEffects
static native boolean canCast(Object src, JavaScriptObject dstId) /*-{
if (@com.google.gwt.lang.Cast::instanceOfString(*)(src)) {
   return !!@com.google.gwt.lang.Cast::stringCastMap[dstId];
} else if (src.@java.lang.Object::castableTypeMap) {
  return !!src.@java.lang.Object::castableTypeMap[dstId]; //<-- this returns false!!!
} else if (@com.google.gwt.lang.Cast::instanceOfDouble(*)(src)) {
  return !!@com.google.gwt.lang.Cast::doubleCastMap[dstId];
} else if (@com.google.gwt.lang.Cast::instanceOfBoolean(*)(src)) {
  return !!@com.google.gwt.lang.Cast::booleanCastMap[dstId];
}
return false;
}-*/;

dstId contains:

enter image description here

Any help greatly appreciated!

I tested this with a small demo which actually works. But in my large application, I get this exception and I don't see why.

Do you have any idea whats wrong here?

Best regards Hannes

4

1 回答 1

0

正如安德烈建议的那样,我将样式设置为详细。我使用 Eclipse 作为开发环境。我决定清理构建系统(我以前做过)。现在问题已经消失了!!此外,我使用 SDBG(参见:https ://sdbg.github.io/ )来调试我的 GWT 应用程序。这很好用(即使没有 -style DETAILED)。现在,非常非常奇怪的事情仍然存在。我可以为我的应用程序设置断点,它们都运行良好,除了在事件处理方法中设置断点。我使用记录器将一些文本打印到控制台,所以我看到 Summernote 的事件处理程序实际上被调用了,但调试器不会停止。我检查了断点是否列在“断点”选项卡中,并且已被检查。我不明白。也许我必须重新重建一切。

但要长话短说:问题的解决方案可能是真正发布一个干净的构建,然后寄希望于最好的结果。

于 2017-05-19T04:13:43.050 回答