[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Map-related Exception in M5
|
Tom,
yes, this is a container-managed transaction committing, Glassfish
against MySQL.
Here's a snippet from the SLSB managing the entities:
-----
WidgetData data;
if(id > 0) {
data = em.find(WidgetData.class, id);
} else {
data = new WidgetData();
data.setApplicationInstance(applicationInstance);
if(partKey != null && partKey.length() > 0) {
applicationInstance.getParts().put(partKey, data);
data.setPartKey(partKey);
}
// flush to update the ID
em.flush();
}
data.setModificationTime(new Date());
data.setTitle(title);
data.setContent(content);
return data;
----
id is -1 in the test case in question, partKey is a String != null.
So there's a new WidgetData entity being added.
Snippet from the "WidgetApplicationInstance" entity:
----
@Id
@SequenceGenerator(name="WIDGETAPPLICATIONINSTANCE_SEQUENCE_GENERATOR")
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="WIDGETAPPLICATIONINSTANCE_SEQUENCE_GENERATOR")
private long ID;
private int instanceNumber;
@ManyToOne
private WidgetApplication application;
@ManyToOne
private User owner;
@OneToMany(mappedBy="applicationInstance", cascade=CascadeType.ALL,
fetch=FetchType.EAGER)
@MapKey(name="partKey")
private Map<String, WidgetData> parts = new HashMap<String,
WidgetData>();
@javax.persistence.Version
protected int optimisticLockVersion;
----
Thanks for looking into this,
rv
Am 20.03.2008 um 22:59 schrieb Tom Ware:
Hi,
Can you give us an idea of what you are doing? It looks like a
transaction is committing. What Entities are involved in the
transaction? How are they mapped? What change are you making?
Thanks,
Tom
wintermute@xxxxxxxxxxxxxxxxxx wrote:
Hi list,
I just deployed my application with EclipseLink M5, without any
trouble this time. For the most part, things look pretty good.
One of my entities, however, doesn't like to have it's map
changed. The code works in TL Essentials.
Has this been reported? Can I do anything to avoid the issue?
(Stack trace attached.)
Thanks,
rv
[#|2008-03-20T13:24:15.390+0100|WARNING|sun-appserver9.1|
org.eclipse.persistence.session.file:/usr/local/server/glassfish/
domains/domain1/applications/j2ee-apps/com.bookpac.server/pu.jar-
ormpersistence.transaction|_ThreadID=48;_ThreadName=TestThread-
c257e1ca1761a0f247942e3fddad;_RequestID=93b4959c-21f5-4938-
a42b-0b53fa7f10bc;| java.lang.NullPointerException
at
org.eclipse.persistence.internal.queries.MapContainerPolicy.compareKe
ys(MapContainerPolicy.java:147) at
org.eclipse.persistence.internal.queries.ContainerPolicy.compareColle
ctionsForChange(ContainerPolicy.java:259) at
org.eclipse.persistence.mappings.CollectionMapping.compareCollections
ForChange(CollectionMapping.java:323) at
org.eclipse.persistence.mappings.CollectionMapping.compareForChange
(CollectionMapping.java:363) at
org.eclipse.persistence.descriptors.changetracking.DeferredChangeDete
ctionPolicy.createObjectChangeSetThroughComparison
(DeferredChangeDetectionPolicy.java:135) at
org.eclipse.persistence.descriptors.changetracking.DeferredChangeDete
ctionPolicy.createObjectChangeSet
(DeferredChangeDetectionPolicy.java:114) at
org.eclipse.persistence.descriptors.changetracking.DeferredChangeDete
ctionPolicy.calculateChanges(DeferredChangeDetectionPolicy.java:
80) at
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateCha
nges(UnitOfWorkImpl.java:523) at
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToData
baseWithChangeSet(UnitOfWorkImpl.java:1320) at
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.issueSQLbefo
reCompletion(UnitOfWorkImpl.java:2862) at
org.eclipse.persistence.internal.jpa.RepeatableWriteUnitOfWork.issueS
QLbeforeCompletion(RepeatableWriteUnitOfWork.java:209) at
org.eclipse.persistence.transaction.AbstractSynchronizationListener.b
eforeCompletion(AbstractSynchronizationListener.java:157)
at
org.eclipse.persistence.transaction.JTASynchronizationListener.before
Completion(JTASynchronizationListener.java:68) at
com.sun.enterprise.distributedtx.J2EETransaction.commit
(J2EETransaction.java:419) at
com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.commit
(J2EETransactionManagerOpt.java:371) at
com.sun.ejb.containers.BaseContainer.completeNewTx
(BaseContainer.java:3792)
at com.sun.ejb.containers.BaseContainer.postInvokeTx
(BaseContainer.java:3571)
at com.sun.ejb.containers.BaseContainer.postInvoke
(BaseContainer.java:1354)
at com.sun.ejb.containers.BaseContainer.postInvoke
(BaseContainer.java:1316)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke
(EJBObjectInvocationHandler.java:210) at
com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke
(EJBObjectInvocationHandlerDelegate.java:77) at
$Proxy306.setPerInstanceUserData(Unknown Source)
[...]
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users