"java.lang.NullPointerException" on Release Integration that Uses a Transport Handling Unit with No Layer Data Configured (Doc ID 1523210.1)

Last updated on SEPTEMBER 08, 2016

Applies to:

Oracle Transportation Management - Version 6.2.5 to 6.3.2 [Release 6.2 to 6.3]
Information in this document applies to any platform.

Symptoms

When using a packaged item on an order which contains a Transport Handling Unit, but does not have the Number of Layers on Ship Unit and Quantity Per Layers fields populated, the following error occurs attempting to upload the Order via Integration:

ERROR
-----------------------
java.lang.NullPointerException
    at glog.server.query.order.OrderReleasePersistenceHelper.addPackingRules(OrderReleasePersistenceHelper.java:787)
    at glog.ejb.orderbase.ObDetailDeriveMissingData.getOutputShipUnitLine(ObDetailDeriveMissingData.java:168)
    at glog.ejb.orderbase.ObDetailDeriveMissingData.deriveMissingData(ObDetailDeriveMissingData.java:52)
    at glog.ejb.orderbase.ObLineBean.deriveMissingData(ObLineBean.java:267)
    at glog.ejb.orderbase.ObLineBean.prePersist(ObLineBean.java:139)
    at glog.ejb.orderbase.ObLineBean.preCreate(ObLineBean.java:129)
    at sun.reflect.GeneratedMethodAccessor241.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at glog.util.beandata.BeanDataHelper$PrePost.runAndThrow(BeanDataHelper.java:345)
    at glog.util.ThrowablePrivilegedAction.run(ThrowablePrivilegedAction.java:12)
    at glog.util.ThrowablePrivilegedAction.doPrivileged(ThrowablePrivilegedAction.java:26)
    at glog.util.beandata.BeanDataHelper$BeanCallback.call(BeanDataHelper.java:232)
    at glog.util.beandata.BeanDataHelper$BeanCallback.call(BeanDataHelper.java:199)
    at glog.util.beandata.BeanDataInserter.preCreate(BeanDataInserter.java:389)
    at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:195)
    at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:232)
    at glog.util.beandata.BeanDataInserter.insert(BeanDataInserter.java:171)
    at glog.util.persistence.BeanDataPersistenceExecutor.insertPerformed(BeanDataPersistenceExecutor.java:97)
    at glog.util.persistence.PersistenceExecutor.persistencePerformed(PersistenceExecu

STEPS
-----------------------
The issue can be reproduced at will with the following steps:

1. Set Up the 2 items and Order Configurations. Make sure one of these has the fields "Number of Layers on Ship Unit" and "Quantity Per Layers" fields populated and the other does not these values populated. 
2. Create an Order Release xml's to fit your domain (Location IDs and Domain Name and Packaging Unit/THU
3. Upload each XML.
4. Notice the xml with first item processes successfully as it contains the fields mentioned on the packaged item.
5. Note the xml with second item fails with the null pointer because the fields are NOT populated on the packaged item.
 
Since these fields are not "required" fields - it is not expected to be populated and should not error out.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms