[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.rt.eclipselink] MergeChangeSetCommand NullPointerException" in remote EclipseLink Session

I am using EclipseLink 1.0.2.
I have Parent & Child with 1:m relationship. When I delete a child object which is held in Parent's child collection (ValuHolder)I am getting "command type MergeChangeSetCommand Internal Exception: java.lang.NullPointerException" in remote EclipseLink session. I didn't get this kind of error in toplink.


Parent has 1: m with Child.
OneToManyMapping childsMapping = new OneToManyMapping();
childsMapping.setAttributeName("childs");
childsMapping.setReferenceClass(Child.class);
childsMapping.setRelationshipPartnerAttributeName("parent");
childsMapping.privateOwnedRelationship();
childsMapping.useBasicIndirection();

Child has back reference to Parent.
DirectToFieldMapping parentIdMapping = new DirectToFieldMapping();
parentIdMapping.setAttributeName("parentId");
parentIdMapping.setFieldName("t_Child.parent_id");
descriptor.addMapping(parentIdMapping);

OneToOneMapping parentMapping = new OneToOneMapping();
parentMapping.setAttributeName("parent");
parentMapping.setReferenceClass(Parent.class);
parentMapping.setRelationshipPartnerAttributeName("childs");
parentMapping.useBasicIndirection();
parentMapping.addForeignKeyFieldName("t_Child.parent_id", "t_Parent.id");

I am using ValueHolder for holding relationship object.

When I remove child from Parent's child collection, everything works fine in local session. But following exception occures in remote EclipseLink session. In remote session, When Eclipselink tries to remove child object, it doesn't get entry of child object in its identityMap. Hence while removing child object,following excpetion comes.

command type MergeChangeSetCommand
Internal Exception: java.lang.NullPointerException
at


org.eclipse.persistence.exceptions.RemoteCommandManagerException.errorProcessingRemoteCommand(RemoteCommandManagerException.j

ava:208)
at


org.eclipse.persistence.internal.sessions.coordination.broadcast.BroadcastRemoteConnection.processReceivedObject(BroadcastRem

oteConnection.java:184)
at


org.eclipse.persistence.internal.sessions.coordination.jms.JMSTopicRemoteConnection.onMessage(JMSTopicRemoteConnection.java:1

79)
at


org.eclipse.persistence.internal.sessions.coordination.jms.JMSTopicRemoteConnection$JMSOnMessageHelper.run(JMSTopicRemoteConn

ection.java:348)

at org.eclipse.persistence.internal.queries.MapContainerPolicy.keyFrom(MapContainerPolicy.java:277)
at org.eclipse.persistence.internal.queries.MapContainerPolicy.removeFrom(MapContainerPolicy.java:339)
at org.eclipse.persistence.internal.queries.ContainerPolicy.mergeChanges(ContainerPolicy.java:653)
at org.eclipse.persistence.mappings.CollectionMapping.mergeChangesIntoObject(CollectionMapping.java:756)
at org.eclipse.persistence.internal.descriptors.ObjectBuilder.mergeChangesIntoObject(ObjectBuilder.java:2476)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesIntoDistributedCache(MergeManager.java:417)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChanges(MergeManager.java:247)
at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesFromChangeSet(MergeManager.java:344)


Can anyone please give suggestions?

Thanks for any help.