# Saving a pretty large xml file in JCR produces a NPE after upgrading to version 15

**URL:** <https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691>\
**Category:** Experience Manager (PaaS/OnPrem)\
**Created:** [March 7, 2025, 4:52pm UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691 "2025-03-07T16:52:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![billy.wu](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/billy.wu/32/1943_2.png) [@billy.wu](https://community.bloomreach.com/u/billy.wu)\
**Post date:** [March 7, 2025, 4:52pm UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691/1 "2025-03-07T16:52:23Z")

</div>

Hi everyone,

We have a need to save a pretty large xml file (used for our sitemap index) in JCR. It used to work properly when we were in Bloomreach 14.x. After upgrading to version 15, we notice that below code importTask.createOrUpdateBinaryFromContentNode produces an NPE, where importTask is new DefaultBinaryImportTask(documentManager);

> ```
> String[] binaryFolderFolderTypes = {"new-file-folder"};
> String[] binaryFolderGalleryTypes = {"hippogallery:exampleAssetSet"};
> 
> String binaryFolderPath =
> importTask.createOrUpdateBinaryFolder(folderLocation, "hippogallery:stdAssetGallery", binaryFolderFolderTypes, binaryFolderGalleryTypes);
> 
> String updatedBinaryLocation =
> importTask.createOrUpdateBinaryFromContentNode(contentNode, "hippogallery:exampleAssetSet",
> binaryFolderPath, fileName);
> 
> ```

binar  
yFolderPath is /content/assets/assets/cavcodotcom/generated-sitemaps and fileName is sitemap-index.xml.

Here is the stacktrace

[INFO] [talledLocalContainer] org.onehippo.forge.content.exim.core.ContentMigrationException: java.lang.NullPointerException  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.exim.core.impl.DefaultBinaryImportTask.createOrUpdateBinaryFromContentNode(DefaultBinaryImportTask.java:137) ~[content-exim-core-4.0.1.jar:?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.RestfulRepositoryJob.persistBinaryImage(RestfulRepositoryJob.java:124) ~[classes/:?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.dynamicsitemap.BrandSiteSitemapJob.createSitemapIndexFile(BrandSiteSitemapJob.java:182) ~[classes/:?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.dynamicsitemap.BrandSiteSitemapJob.execute(BrandSiteSitemapJob.java:68) [classes/:?]  
[INFO] [talledLocalContainer] at org.hippoecm.repository.quartz.RepositoryJobJob.execute(RepositoryJobJob.java:50) [hippo-repository-engine-15.7.1.jar:15.7.1]  
[INFO] [talledLocalContainer] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.3.2.jar:?]  
[INFO] [talledLocalContainer] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.3.2.jar:?]  
[INFO] [talledLocalContainer] Caused by: java.lang.NullPointerException  
[INFO] [talledLocalContainer] at org.apache.jackrabbit.util.ISO8601.getYear(ISO8601.java:395) ~[jackrabbit-jcr-commons-2.21.19-h4.jar:?]  
[INFO] [talledLocalContainer] at org.apache.jackrabbit.spi.commons.value.ValueFactoryQImpl.createValue(ValueFactoryQImpl.java:142) ~[jackrabbit-spi-commons-2.21.19-h4.jar:?]  
[INFO] [talledLocalContainer] at org.hippoecm.repository.impl.ValueFactoryDecorator.createValue(ValueFactoryDecorator.java:59) ~[hippo-repository-engine-15.7.1.jar:15.7.1]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.common.jcr.DefaultJcrContentValueConverter.toJcrValue(DefaultJcrContentValueConverter.java:242) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.common.jcr.DefaultJcrContentValueConverter.toJcrValue(DefaultJcrContentValueConverter.java:59) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.createJcrValuesFromContentProperty(DefaultJcrContentNodeBinder.java:307) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.bindProperties(DefaultJcrContentNodeBinder.java:192) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.bind(DefaultJcrContentNodeBinder.java:148) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.addSubNodes(DefaultJcrContentNodeBinder.java:256) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.bind(DefaultJcrContentNodeBinder.java:152) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.pojo.binder.jcr.DefaultJcrContentNodeBinder.bind(DefaultJcrContentNodeBinder.java:48) ~[hippo-pojo-bind-jcr-1.3.1.jar:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.exim.core.impl.DefaultBinaryImportTask.updateBinaryHandleAndVariantNodeFromBinaryVariantContentNode(DefaultBinaryImportTask.java:171) ~[content-exim-core-4.0.1.ja  
r:?]  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.exim.core.impl.DefaultBinaryImportTask.createOrUpdateBinaryFromContentNode(DefaultBinaryImportTask.java:127) ~[content-exim-core-4.0.1.jar:?]  
[INFO] [talledLocalContainer] … 6 more

Any help is greatly appreciated.

Thanks,

Billy

---

<div class="post-metadata">

**Author:** ![jasper.floor](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/jasper.floor/32/28_2.png) [@jasper.floor](https://community.bloomreach.com/u/jasper.floor)\
**Post date:** [March 10, 2025, 8:42am UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691/2 "2025-03-10T08:42:57Z")

</div>

It looks like you are using content-exim version 4.0.1. For CMS 15 you need to update to version 5.0.1

---

<div class="post-metadata">

**Author:** ![billy.wu](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/billy.wu/32/1943_2.png) [@billy.wu](https://community.bloomreach.com/u/billy.wu)\
**Post date:** [March 10, 2025, 2:49pm UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691/3 "2025-03-10T14:49:10Z")

</div>

HJasper,

Thank you for pointing that out.

I just upgraded content-exim to 5.0.1, but I am still getting NPE. Anything else I can try?

Thanks,

Billy

[INFO] [talledLocalContainer] 10.03.2025 09:45:01 ERROR Hippo JCR Quartz Job Scheduler\_Worker-1 [BrandSiteSitemapJob.execute:72] Error while building cavcodotcom Sitemap  
[INFO] [talledLocalContainer] org.onehippo.forge.content.exim.core.ContentMigrationException: java.lang.NullPointerException  
[INFO] [talledLocalContainer] at org.onehippo.forge.content.exim.core.impl.DefaultBinaryImportTask.createOrUpdateBinaryFromContentNode(DefaultBinaryImportTask.java:137) ~[**content-exim-core-5.0.1.jar** :?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.RestfulRepositoryJob.persistBinaryImage(RestfulRepositoryJob.java:124) ~[classes/:?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.dynamicsitemap.BrandSiteSitemapJob.createSitemapIndexFile(BrandSiteSitemapJob.java:182) ~[classes/:?]  
[INFO] [talledLocalContainer] at com.cavco.cronjobs.dynamicsitemap.BrandSiteSitemapJob.execute(BrandSiteSitemapJob.java:68) [classes/:?]  
[INFO] [talledLocalContainer] at org.hippoecm.repository.quartz.RepositoryJobJob.execute(RepositoryJobJob.java:50) [hippo-repository-engine-15.7.1.jar:15.7.1]  
[INFO] [talledLocalContainer] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.3.2.jar:?]

---

<div class="post-metadata">

**Author:** ![jasper.floor](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/jasper.floor/32/28_2.png) [@jasper.floor](https://community.bloomreach.com/u/jasper.floor)\
**Post date:** [March 10, 2025, 2:56pm UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691/4 "2025-03-10T14:56:53Z")

</div>

Its an NPE, so looking at the code there is a limited number of objects that could be NULL, unfortunately without any extra logging to be able to determine what. If you can attach a debugger it might become more clear. Failing that, check the values that are actually passed to the method. Check whether the nodes/folders actually exist.

---

<div class="post-metadata">

**Author:** ![Rajesh\_Sailada](https://yyz1.discourse-cdn.com/flex027/user_avatar/community.bloomreach.com/rajesh_sailada/32/1374_2.png) [@Rajesh\_Sailada](https://community.bloomreach.com/u/Rajesh_Sailada)\
**Post date:** [June 17, 2025, 5:58am UTC](https://community.bloomreach.com/t/saving-a-pretty-large-xml-file-in-jcr-produces-a-npe-after-upgrading-to-version-15/4691/5 "2025-06-17T05:58:36Z")

</div>

Hi @billy.wu ,

Just following up on the comment above. Kindly let us know if you’ve had a chance to review it or if you need any further clarification. We’re happy to help if you have any questions or concerns.

Thank you!  
Bloomreach Support
