title: NullPointer with org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.writeTo while building rest api using jax-rs
body: <p>I am trying to create REST APIs using jax-rs and encountering the following exception when fetching a particular instance using path param case.</p>
  
  <p>Exception</p>
  
  <pre><code>2019-03-17 04:45:17 [FATAL] [   59][internal.exceptions.DebugMapper:19] - javax.ws.rs.WebApplicationException: HTTP 500 Internal Server Error
      at org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.writeTo(MOXyJsonProvider.java:959)
      at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:266)
      at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:251)
      at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:163)
      at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:109)
      at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:163)
      at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:85)
      at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:163)
      at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1135)
      at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:662)
      at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:395)
      at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:385)
      at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:280)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
      at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
      at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:748)
  Caused by: javax.xml.bind.MarshalException
   - with linked exception:
  [java.lang.NullPointerException]
      at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:500)
      at org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.writeTo(MOXyJsonProvider.java:957)
      ... 41 more
  Caused by: java.lang.NullPointerException
      at org.hibernate.collection.internal.AbstractPersistentCollection.openTemporarySessionForLoading(AbstractPersistentCollection.java:275)
      at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:198)
      at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:561)
      at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:132)
      at org.hibernate.collection.internal.PersistentSet.iterator(PersistentSet.java:163)
      at org.eclipse.persistence.internal.queries.CollectionContainerPolicy.iteratorFor(CollectionContainerPolicy.java:171)
      at org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.marshal(XMLCompositeCollectionMappingNodeValue.java:92)
      at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:149)
      at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:102)
      at org.eclipse.persistence.internal.oxm.record.ObjectMarshalContext.marshal(ObjectMarshalContext.java:59)
      at org.eclipse.persistence.internal.oxm.XPathNode.marshal(XPathNode.java:443)
      at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:243)
      at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
      at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
      at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:766)
      at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshalStreamOrWriter(XMLMarshaller.java:1147)
      at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:934)
      at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:877)
      at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:496)
      ... 42 more
  </code></pre>
  
  <p>Following is the gradle artifact configuration : </p>
  
  <pre><code>compile 'org.glassfish.jersey.core:jersey-client:2.6'
  compile 'org.glassfish.jersey.containers:jersey-container-servlet-core:2.26'
  compile 'org.glassfish.jersey.inject:jersey-hk2:2.26'
  compile 'org.glassfish.jersey.media:jersey-media-moxy:2.26'
  
  compile 'org.testng:testng:6.9.10'
  compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
  compile 'com.fasterxml.jackson.core:jackson-core:2.9.5'
  compile 'com.fasterxml.jackson.core:jackson-databind:2.9.5'
  compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.5'
  compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.5'
  compile 'com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.5'
  
  
  compile 'javax.ejb:javax.ejb-api:3.2.2'
  //compile 'org.hibernate:hibernate-annotations:3.5.6-Final'
  compile 'org.hibernate.common:hibernate-commons-annotations:4.0.5.Final'
  compile 'org.hibernate:hibernate-core:4.3.8.Final'
  compile 'org.hibernate:hibernate-validator:4.3.2.Final'
  compile 'org.hibernate:hibernate-entitymanager:5.2.16.Final'
  compile 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final'
  compile 'org.hibernate.validator:hibernate-validator:6.0.9.Final'
  compile 'org.javassist:javassist:3.22.0-GA'
  compile 'mysql:mysql-connector-java:8.0.14'
  compile 'org.apache.logging.log4j:log4j-api:2.10.0'
  compile 'org.apache.logging.log4j:log4j-core:2.10.0'
  compile 'org.apache.logging.log4j:log4j-web:2.10.0'
  def tomcatVersion = '7.0.57'
  tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
          "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
  tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
      exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
  }
  </code></pre>
  
  <p>Could anyone please suggest any solution. 
  I have tried with 2.26, 2.27 and 2.28 versions of org.glassfish.jersey.media:jersey-media-moxy but still facing the same issue. With lower versions of moxy, I am running into some more compatibility issues.</p>
  
  <p><em>Please note, I am using only the web.xml for configuring the application.</em></p>