Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] OneToOne AND ManyToOne Mapping works with FetchType.EAGER but not with FetchType.LAZY -> Exception when deploying (SGES 2.1)

The NullPointerException you are seeing could definitely cause that kind of a problem. The strange things is that the line in the stack trace would be hard to get a NPE from:

  handleException(new IntegrityException(getIntegrityChecker()));

As you can see there is not anything that could obviously cause a NPE on that line.

OneToOne and ManyToOne mappings have the same underlying implementation so it is no surprised they both have the same behavior.

Is there any way you can provide a simple recreation or steps that can help us recreate your issue?

-Tom


zebhed wrote:
I turned on finest logging. The server.log doesn´t contain any more valuable
information (at least for me).
This is the log output that is related to weaving:


[#|2009-01-29T00:26:22.312+0100|FINEST|sun-appserver2.1|org.eclipse.persistence.session.file:/C:/Programme/Sun/AppServer/domains/domain1/applications/j2ee-apps/war/war-ejb_jar/-war-ejbPU.properties|_ThreadID=22;_ThreadName=Thread-539;ClassName=null;MethodName=null;_RequestID=d12dc1b7-8213-4a92-96a5-afae7052ffd0;|property=eclipselink.weaving.changetracking;
default value=true|#]

[#|2009-01-29T00:26:22.312+0100|FINEST|sun-appserver2.1|org.eclipse.persistence.session.file:/C:/Programme/Sun/AppServer/domains/domain1/applications/j2ee-apps/war/war-ejb_jar/-war-ejbPU.properties|_ThreadID=22;_ThreadName=Thread-539;ClassName=null;MethodName=null;_RequestID=d12dc1b7-8213-4a92-96a5-afae7052ffd0;|property=eclipselink.weaving.lazy;
default value=true|#]

[#|2009-01-29T00:26:22.312+0100|FINEST|sun-appserver2.1|org.eclipse.persistence.session.file:/C:/Programme/Sun/AppServer/domains/domain1/applications/j2ee-apps/war/war-ejb_jar/-war-ejbPU.properties|_ThreadID=22;_ThreadName=Thread-539;ClassName=null;MethodName=null;_RequestID=d12dc1b7-8213-4a92-96a5-afae7052ffd0;|property=eclipselink.weaving.eager;
default value=false|#]

[#|2009-01-29T00:26:22.312+0100|FINEST|sun-appserver2.1|org.eclipse.persistence.session.file:/C:/Programme/Sun/AppServer/domains/domain1/applications/j2ee-apps/war/war-ejb_jar/-war-ejbPU.properties|_ThreadID=22;_ThreadName=Thread-539;ClassName=null;MethodName=null;_RequestID=d12dc1b7-8213-4a92-96a5-afae7052ffd0;|property=eclipselink.weaving.fetchgroups;
default value=true|#]

[#|2009-01-29T00:26:22.312+0100|FINEST|sun-appserver2.1|org.eclipse.persistence.session.file:/C:/Programme/Sun/AppServer/domains/domain1/applications/j2ee-apps/war/war-ejb_jar/-war-ejbPU.properties|_ThreadID=22;_ThreadName=Thread-539;ClassName=null;MethodName=null;_RequestID=d12dc1b7-8213-4a92-96a5-afae7052ffd0;|property=eclipselink.weaving.internal;
default value=true|#]

------

There is one additional exception in my log that I can post:


java.lang.NullPointerException
	at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:464)
	at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.initializeDescriptors(DatabaseSessionImpl.java:396)
	at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:641)
	at
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:594)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:209)
	at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:246)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:69)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:118)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:112)
	at
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:100)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.loadPersistenceUnitBundle(PersistenceProcessor.java:573)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.createTablesInDB(PersistenceProcessor.java:421)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.processAppBundle(PersistenceProcessor.java:287)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.processApplication(PersistenceProcessor.java:189)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processApplication(DeploymentEventListenerImpl.java:211)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processEvent(DeploymentEventListenerImpl.java:172)
	at
com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.notifyDeploymentEvent(DeploymentEventListenerImpl.java:122)
	at
com.sun.enterprise.deployment.backend.DeploymentEventManager.notifyDeploymentEvent(DeploymentEventManager.java:79)
	at
com.sun.enterprise.deployment.backend.AppDeployer.postDeploy(AppDeployer.java:401)
	at
com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:260)
	at
com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:148)
	at
com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:208)
	at
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
	at
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
	at
com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:283)
	at
com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:835)
	at
com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
	at
com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:225)


-----
And I can tell one more thing. The exceptions I see are not exclusively
related to lazy OneToOne mappings, but also to lazy ManyToOne mappings. I
didn´t recognize that in the first place because the log entries for
ManyToOne mappings have a mistake. For a ManyToOne mapping the exception in
the log says: "(...) Mapping:
org.eclipse.persistence.mappings.OneToOneMapping[userProfile] (...)".

-----

And one more thing: When I change all occurrences of FetchType.LAZY to
FetchType.EAGER in every OneToOne and in every ManyToOne mapping my
application deploys fine on "SGES 2.1". But this cannot be an option.

-----

Now there is a big question mark in my head.


Back to the top