在 DevMode 中看到 Twig Load 错误,但在 GAE 中没有看到

发布于 2025-01-03 01:33:28 字数 5124 浏览 2 评论 0原文

当尝试使用 Twig(见下文)加载时,我在本地开发模式中看到了一个异常,而我们在 Live GAE 中看不到。

我的同事也没有看到它,但我们有相同的开发设置 (尽管他在 Mac 上运行)

失败的项目是 ArrayList,其中 ContactStatus 是一个简单的枚举(见下文),这是模型 声明

List<ContactStatus> contactStatuses = new ArrayList<ContactStatus>();

据我了解,这应该是开箱即用的?

不需要 @Child 注释等? (事实上​​,添加 @Embedded 似乎 导致问题 35 :http://code.google.com/p/ twig-persist/issues/detail?id=35)

当我运行调试会话时,这似乎失败了,因为 ArrayList 没有实现Comparable(因为Enum总是这样做)

我们做错了什么?!

版本

  • Java 7
  • Twig 2.0-beta3
  • AppEngine 1.6.2.1
  • GWT 2.4.0

Enum

public enum ContactStatus implements IsSerializable, Serializable {
   Public, Secret, Blocked, Ignored;
}

我们在开发模式中看到的异常

java.lang.IllegalArgumentException: Cannot compare [SimpleProperty value=[Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored] path=contactStatuses indexed=false] with [SimpleProperty value=[Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored] path=contactStatuses indexed=false]
at com.google.code.twig.util.PropertyComparator.compare(PropertyComparator.java:23)
at com.google.code.twig.util.PropertyComparator.compare(PropertyComparator.java:7)
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at com.google.code.twig.standard.StandardDecodeCommand.entityToInstance(StandardDecodeCommand.java:60)
at com.google.code.twig.standard.StandardDecodeCommand.keyToInstance(StandardDecodeCommand.java:127)
at com.google.code.twig.standard.StandardSingleTypedLoadCommand.keyToInstance(StandardSingleTypedLoadCommand.java:9)
at com.google.code.twig.standard.StandardSingleTypedLoadCommand.now(StandardSingleTypedLoadCommand.java:34)
at com.google.code.twig.standard.TranslatorObjectDatastore.load(TranslatorObjectDatastore.java:202)
at com.recruitmentlink.server.persistence.twig.TwigProfileImpl.getExistingCandidate(TwigProfileImpl.java:92)

Im seeing an exception in local Development Mode when trying to load using Twig (see below) that we dont see in the Live GAE.

My colleague also doesn't see it and yet we have the same dev set up
(although he runs on Mac)

The item it is failing on is an ArrayList<ContactStatus> where
ContactStatus is a simple enum (see below), here's the model
declaration

List<ContactStatus> contactStatuses = new ArrayList<ContactStatus>();

So as I understand it this should just work out of the box?

No @Child annotation etc needed? (indeed adding @Embedded seems to
cause issue35 : http://code.google.com/p/twig-persist/issues/detail?id=35)

When I run a debug session this seems to be failing because ArrayList
does not implement Comparable (since Enums always do)

What are we doing wrong?!

Versions

  • Java 7
  • Twig 2.0-beta3
  • AppEngine 1.6.2.1
  • GWT 2.4.0

Enum

public enum ContactStatus implements IsSerializable, Serializable {
   Public, Secret, Blocked, Ignored;
}

Exception we see in Dev Mode

java.lang.IllegalArgumentException: Cannot compare [SimpleProperty value=[Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored] path=contactStatuses indexed=false] with [SimpleProperty value=[Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Blocked, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored, Ignored] path=contactStatuses indexed=false]
at com.google.code.twig.util.PropertyComparator.compare(PropertyComparator.java:23)
at com.google.code.twig.util.PropertyComparator.compare(PropertyComparator.java:7)
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at com.google.code.twig.standard.StandardDecodeCommand.entityToInstance(StandardDecodeCommand.java:60)
at com.google.code.twig.standard.StandardDecodeCommand.keyToInstance(StandardDecodeCommand.java:127)
at com.google.code.twig.standard.StandardSingleTypedLoadCommand.keyToInstance(StandardSingleTypedLoadCommand.java:9)
at com.google.code.twig.standard.StandardSingleTypedLoadCommand.now(StandardSingleTypedLoadCommand.java:34)
at com.google.code.twig.standard.TranslatorObjectDatastore.load(TranslatorObjectDatastore.java:202)
at com.recruitmentlink.server.persistence.twig.TwigProfileImpl.getExistingCandidate(TwigProfileImpl.java:92)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

调妓 2025-01-10 01:33:28

以下是约翰·帕特森 (John Patterson) 就该问题以及相关代码“修复”做出的(超快速)回复,该代码“修复”抑制了这种不必要的“异常”

http://groups.google.com/group/twig-persist/browse_frm/thread/81b7d913a2ad37cc#

该问题仅影响使用 Java 7 的用户

。由于 GAE 部署运行的是 Java 6,我们在现场没有看到这个问题。

Here is a (super quick) reply from John Patterson on the issue and related code 'fix' that suppresses this unnecessary 'exception'

http://groups.google.com/group/twig-persist/browse_frm/thread/81b7d913a2ad37cc#

The issue only affects people using Java 7.

Since the GAE deployments are running Java 6, we don't see the issue in live.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文