issue created: http://jira.xwiki.org/jira/browse/XWIKI-2702
thanks for report.

Pascal Voitot wrote:
> I have certainly found a small bug
> 
> in com.xpn.xwiki.api.Document, there is:
>     /**
>      * Select a subset of objects from a given class, filtered on a "key =
> value" criteria.
>      *
>      * @param classname The type of objects to return.
>      * @param key The name of the property used for filtering.
>      * @param value The required value.
>      * @return A Vector of [EMAIL PROTECTED] Object objects} matching the 
> criteria. If
> no objects are found, or
>      *         if the key is an empty String, then an empty vector is
> returned.
>      */
>     public Vector<Object> getObjects(String classname, String key, String
> value)
>     {
>         Vector<Object> result = new Vector<Object>();
>         if (StringUtils.isBlank(key) || value == null) {
>             return getObjects(classname);
>         }
>         try {
>             Vector<BaseObject> allObjects = doc.getObjects(classname);
>             if (allObjects == null || allObjects.size() == 0) {
>                 return result;
>             } else {
>                 for (BaseObject obj : allObjects) {
>                     if (obj != null) {
>                         BaseProperty prop = (BaseProperty) obj.get(key);
>                         if (prop == null || prop.getValue() == null) {
>                             continue;
>                         }
>                         if (value.equals(prop.getValue())) {
>                             result.add(newObjectApi(obj,
> getXWikiContext()));
>                         }
>                     }
>                 }
>             }
>         } catch (Exception e) {
>         }
>         return result;
>     }
> 
> What is not good:
>                         if (value.equals(prop.getValue())) {
>                             result.add(newObjectApi(obj,
> getXWikiContext()));
>                         }
> 
> in XWikiDocument.getObject(), it is:
>                     if (value.equals(obj.getStringValue(key))) {
>                         return obj;
>                     }
> 
> so getObjects only works when the property is a String.
> 
> Best Regards
> Pascal
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs


-- 
   Artem Melentyev
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to