docs: @FFDCIgnore({ClassNotFoundException.class })
  	public static final Serializable deserialize(byte[] array, String cacheName) throws IOException, ClassNotFoundException {
  
  		if (array == null) {
  			return null;
  		}
  		
  		Serializable object = null;
  
  		try {
  			if (null != _instance) {
  				SerializationService ss = _instance.serializationServiceRef.getService();
  				if (null != ss) {
  					try {
  						ClassLoader tccl = getContextClassLoader();
  						ObjectInputStream objectInputStream = ss.createObjectInputStream(new ByteArrayInputStream(array), tccl);
  						object = (Serializable) objectInputStream.readObject();
  					}catch (ClassNotFoundException e){
  						if (null != cacheName){
  							Library sharedLib = getSharedLibrary(cacheName);
  							if (null != sharedLib){
  								ObjectInputStream objectInputStream = new DeserializationObjectInputStream(new ByteArrayInputStream(array), sharedLib.getClassLoader());
  								object = (Serializable) objectInputStream.readObject();
  							}
  						}
  					}
  				}
  			}
  
  			if (null == object) {
  				object = deserializeUsingTCCL(array, 0, array.length, getContextClassLoader());
  			}
  		} catch (ClassNotFoundException e) {
  			try {
  				object = deserialize(array, 0, array.length);
  			} catch (ClassNotFoundException e1) {
  				throw e1;
  			}
  		}
  		return object;
  	}