/** @since 3.0 */ void checkPageResultConsistency(List<?> objects, List<?> ids) { if (objects.size() < ids.size()) { // find missing ids StringBuilder buffer = new StringBuilder(); buffer.append("Some ObjectIds are missing from the database. "); buffer.append("Expected ").append(ids.size()).append(", fetched ").append(objects.size()); boolean first = true; for (Object id : ids) { boolean found = false; for (Object object : objects) { if (helper.replacesObject(object, id)) { found = true; break; } } if (!found) { if (first) { first = false; } else { buffer.append(", "); } buffer.append(id.toString()); } } throw new CayenneRuntimeException(buffer.toString()); } else if (objects.size() > ids.size()) { throw new CayenneRuntimeException( "Expected " + ids.size() + " objects, retrieved " + objects.size()); } }