question: private CIMInstance commonVolumeUpdate ( DbClient dbClient , WBEMClient client , Volume volume , CIMObjectPath volumePath ) { CIMInstance volumeInstance = null ; try { _log . info ( "Executing CIMInstance update for volume {} at volume path {}" , volume . forDisplay ( ) , volumePath ) ; volumeInstance = client . getInstance ( volumePath , true , false , null ) ; if ( volumeInstance != null ) { String alternateName = CIMPropertyFactory . getPropertyValue ( volumeInstance , SmisConstants . CP_NAME ) ; volume . setAlternateName ( alternateName ) ; String wwn = CIMPropertyFactory . getPropertyValue ( volumeInstance , SmisConstants . CP_WWN_NAME ) ; volume . setWWN ( wwn . toUpperCase ( ) ) ; volume . setProvisionedCapacity ( getProvisionedCapacityInformation ( client , volumeInstance ) ) ; volume . setAllocatedCapacity ( getAllocatedCapacityInformation ( client , volumeInstance ) ) ; String accessState = CIMPropertyFactory . getPropertyValue ( volumeInstance , SmisConstants . CP_ACCESS ) ; String [ ] statusDescriptions = CIMPropertyFactory . getPropertyArray ( volumeInstance , SmisConstants . CP_STATUS_DESCRIPTIONS ) ; List < String > statusDescriptionList = Arrays . asList ( statusDescriptions ) ; if ( ! volume . checkForRp ( ) ) { volume . setAccessState ( SmisUtils . generateAccessState ( accessState , statusDescriptionList ) ) ; } } volume . setInactive ( false ) ; } catch ( Exception e ) { _log . error ( "Caught an exception while trying to update attributes for volume {} and volume path {}" , volume . forDisplay ( ) , volumePath , e ) ; setPostProcessingFailedStatus ( "Caught an exception while trying to update volume attributes: " + e . getMessage ( ) ) ; } return volumeInstance ; }
target:  This is common volume attribute update code. Consider this the place to make updates for the Bourne's volume object based on the references to the array based object irrespective of what type of volume creation it is.