We have discovered a bug in OpenJPA when InverseManager is used with collection annoted @toMany([...], optional = false). OpenJPA doesn't solve inverse relations before calling the internal preflush method.
This bug does not exist on versions 2.1.0 and 2.1.1.
A unitary test and a small patch is worth a thousand words 
 Patch successfully tested on OpenJPA 2.2.1 and in our software.