Java.lang.NullPointerException in org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform (ServerPlatformUtils.java)

EclipseLink 2.6.1 (final) throws the following exception when deploying a Java EE application on GlassFish Server 4.1. This did not happen before the upgrade from 2.6.0.

Warning: java.lang.NullPointerException at org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform(ServerPlatformUtils.java:101) at org.eclipse.persistence.sessions.factories.SessionManager.init(SessionManager.java:77) at org.eclipse.persistence.sessions.factories.SessionManager.<clinit>(SessionManager.java:71) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.addSessionToGlobalSessionManager(EntityManagerSetupImpl.java:907) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.initSession(EntityManagerSetupImpl.java:2676) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:675) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) at org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451) at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510) at org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492) at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:395) at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:487) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:360) at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:360) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534) at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224) at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) at java.lang.Thread.run(Thread.java:745) 

Although this is a java.lang.NullPointerException , the LOG level is Warning .

org.eclipse.persistence.sessions.factories.SessionManager#init() is defined as follows (although grepcode shows RC1).

 74 private static void init() { 75 String platformClass = ServerPlatformUtils.detectServerPlatform(null); 76 try { 77 detectedPlatform = ServerPlatformUtils.createServerPlatform(null, platformClass, SessionManager.class.getClassLoader()); 78 } catch (NullPointerException npe) { 79 //some platforms may not be handling 'null' session well, 80 //so be defensive here and only log throwable here 81 detectedPlatform = null; 82 LOG.logThrowable(SessionLog.WARNING, AbstractSessionLog.CONNECTION, npe); 83 } 84 supportPartitions = detectedPlatform != null && detectedPlatform.usesPartitions(); 85 if (supportPartitions) { 86 managers = new ConcurrentHashMap<String, SessionManager>(4, 0.9f, 1); 87 SessionManager sm = initializeManager(); 88 manager = sm; 89 managers.put(sm.context, sm); 90 } else { 91 manager = initializeManager(); 92 } 93 } 

Where createServerPlatform(DatabaseSession session, String platformClass, ClassLoader loader) throws a java.lang.NullPointerException if platformClass is null .

 97 public static ServerPlatform createServerPlatform(DatabaseSession session, String platformClass, ClassLoader loader) { 98 if (platformClass == null) { 99 throw new NullPointerException(); 100 } //... } 

This seems to be ok according to the code. It?

+6
source share
2 answers

Although this exception appears to be normal, it is no longer reproduced in the EclipseLink 2.6.2 release on December 22, 2015.

So, if you were unsuccessful about this exception, consider upgrading EclipseLink to this version ( 2.6.2 ).

+4
source

I updated EclipseLink to version 2.6.5. But the warning still shows.

0
source

Source: https://habr.com/ru/post/1234346/


All Articles