org.apache.ojb.broker.accesslayer.MtoNCollectionPrefetcher bug

in method

    private Criteria buildPrefetchCriteria(Collection ids, String[] fkCols, String[] itemFkCols,
            FieldDescriptor[] itemPkFields)
    {
        if (fkCols.length == 1) //bug is here
        {
            return buildPrefetchCriteriaSingleKey(ids, fkCols[0], itemFkCols[0], itemPkFields[0]); //only first item's foreign key passed
        }
        else
        {
            return buildPrefetchCriteriaMultipleKeys(ids, fkCols, itemFkCols, itemPkFields);
        }

    }

assumption that if parent table has the only foreign key then item table has the only FK too is incorrect.

<collection-descriptor name="recipients" element-class-ref="nVerge.commons.User"
auto-delete="link" auto-retrieve="true" auto-update="link"
indirection-table="hot_folder_recipients">
 <fk-pointing-to-this-class column="hot_folder_id"/>
 <fk-pointing-to-element-class column="user_login"/>
 <fk-pointing-to-element-class column="user_network_id"/> <!-- this FK is not put into where criteria -->
</collection-descriptor>

Quickfix for this is