at com.google.code.twig.standard.StandardDecodeCommand.keyToInstance(StandardDecodeCommand.java:205)
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.SetPersistenceTest.getStoredSetOfRelatedEntities(SetPersistenceTest.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at org.junit.runner.JUnitCore.run(JUnitCore.java:130)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Can not set java.util.Set field com.google.code.twig.SetPersistenceTest$Foo.bars to java.util.ArrayList
at com.google.code.twig.util.Reflection.set(Reflection.java:140)
at com.google.code.twig.translator.FieldTranslator.setFieldValue(FieldTranslator.java:197)
... 28 more
Caused by: java.lang.IllegalArgumentException: Can not set java.util.Set field com.google.code.twig.SetPersistenceTest$Foo.bars to java.util.ArrayList
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:657)
at com.google.code.twig.util.Reflection.set(Reflection.java:136)
... 29 more
@Test
public void getStoredSetOfRelatedEntities() {
Bar bar = new Bar();
ObjectDatastore datastore = new AnnotationObjectDatastore(true);
datastore.store().instance(bar).now();
Foo foo = new Foo();
foo.key = "key2";
foo.bars = new HashSet<Bar>();
foo.bars.add(bar);
datastore.store().instance(foo).now();
datastore.disassociateAll();
Foo existing = datastore.load().type(Foo.class).id(foo.key).now();
assertThat(existing.bars.size(),is(equalTo(1)));
}