2015-10-23 2 views
5

EclipseLink 2.6.1 (final) создает следующее исключение при развертывании приложения Java EE на GlassFish Server 4.1. Это не происходило до обновления с 2.6.0.java.lang.NullPointerException at org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform (ServerPlatformUtils.java)

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) 

Хотя это java.lang.NullPointerException, то LOG уровень Warning.

org.eclipse.persistence.sessions.factories.SessionManager#init() определяется следующим образом (хотя grepcode показывает 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  } 

Где createServerPlatform(DatabaseSession session, String platformClass, ClassLoader loader) бросает java.lang.NullPointerException, если platformClass является null.

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

      //... 
     } 

Похоже, что это нормально в соответствии с кодом. Это? не

+0

Как вы используете Eclipselink для Glassfish? –

+0

Как обычно, с помощью IDE NetBeans в этом случае обладает развертывателем, известным как Apache Ant (я не использую Apache Maven), который выполняет задачу развертывания приложений. – Tiny

+0

Вы знаете, что Glassfish allready реализует другую версию eclipselink (я думаю, 2.5.2)? Вы изменили реализацию стеклянной рыбы для работы с 2.6.1? Если вы добавите банку в войну, которую вы развертываете на стеклянной рыбке, я предполагаю, что возможны конфликты версий. –

ответ

2

Хотя это исключение, кажется, нормально, это уже не воспроизводимые в EclipseLink 2.6.2 выпущен 22 декабря 2015 года

Так что, если вы случайно беспокоиться о том, что за исключением, подумайте об обновлении EclipseLink этой версии (2.6.2).

Смежные вопросы