When debugging, I see this -- it get "bbb" twice (old and new, where I would 
actually expect stale "ccc"):

results = {java.util.ArrayList@17380}  size = 3
 0 = {java.lang.Object[3]@17384} 
  0 = {com.google.appengine.api.datastore.Key@17395} "test(1)"
  1 = {java.lang.String@17396} "#Thu Apr 02 20:53:33 CEST 2015\nprop=STRING\n"
  2 = {java.lang.String@17397} "040:aaa"
 1 = {java.lang.Object[3]@17385} 
  0 = {com.google.appengine.api.datastore.Key@17391} "test(1)"
  1 = {java.lang.String@17392} "#Thu Apr 02 20:51:24 CEST 2015\nprop=STRING\n"
  2 = {java.lang.String@17393} "040:bbb"
 2 = {java.lang.Object[3]@17386} 
  0 = {com.google.appengine.api.datastore.Key@17387} "test(1)"
  1 = {java.lang.String@17388} "#Thu Apr 02 20:53:33 CEST 2015\nprop=STRING\n"
  2 = {java.lang.String@17389} "040:bbb"


But still no idea on why dup "bbb" is there ...

-Ales

> On 01 Apr 2015, at 11:59, Ales Justin <ales.jus...@gmail.com> wrote:
> 
> Did entity updating changed in HS5 / Lucene4?
> (aka Document updating)
> 
> Since this used to work for us (with HS4, Lucene3):
> 
> ---
> @Test
> public void testProjectionQueriesHandleEntityModificationProperly() throws 
> Exception {
>     Entity e = createEntity("test", 1)
>         .withProperty("prop", Arrays.asList("aaa", "bbb", "ccc"))
>         .store();
> 
>     Query query = new Query("test")
>         .addProjection(new PropertyProjection("prop", String.class))
>         .addSort("prop");
> 
>     assertEquals(3, service.prepare(query).asList(withDefaults()).size());
> 
>     e = createEntity(e.getKey())
>         .withProperty("prop", Arrays.asList("aaa", "bbb"))
>         .store();
> 
>     assertEquals(2, service.prepare(query).asList(withDefaults()).size());
> 
>     service.delete(e.getKey());
> 
>     assertEquals(0, service.prepare(query).asList(withDefaults()).size());
> }
> 
> ---
> 
> Where we add each list/collection value under same field:
> 
> if (propertyValue instanceof Collection) {
>     Collection collection = (Collection) propertyValue;
>     for (Object element : collection) {
>         if (PropertyUtils.isIndexedProperty(element)) {
>             final Bridge inner = BridgeUtils.matchBridge(element);
>             luceneOptions.addFieldToDocument(propertyName, 
> inner.objectToString(element), document);
>         }
>     }
> 
> ---
> 
> As it looks like the update still keeps the old values around:
> 
> java.lang.AssertionError: expected:<2> but was:<3>
>     at org.junit.Assert.fail(Assert.java:88)
>     at org.junit.Assert.failNotEquals(Assert.java:743)
>     at org.junit.Assert.assertEquals(Assert.java:118)
>     at org.junit.Assert.assertEquals(Assert.java:555)
>     at org.junit.Assert.assertEquals(Assert.java:542)
>     at 
> org.jboss.test.capedwarf.datastore.test.QueryOptimizationsTest.testProjectionQueriesHandleEntityModificationProperly(QueryOptimizationsTest.java:510)
> 
> ---
> 
> Any way to force / fix this?
> 
> -Ales
> 

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to