InjectionPointImpl was using the default class loader instead of the thread class loader during serialize/deserialize which was resulting in class not found exceptions. It was also dropping every other qualifier due to the way readObject was double-reading the qualifiers while looking for the '~' delimeter. And finally, the writeObject code was writing the type of the qualifiers rather than writing the whole object, thus omiting qualifier values (i.e. @Named(org.apache.webbeans.foo) resulted in @Named(value=)).
Attached patch resolves these issues when applied on top of