docs: final private com.ibm.websphere.cache.CacheEntry internal_putAndGet(
                                                                          Object key,
                                                                          Object value,
                                                                          Object userMetaData,
                                                                          int priority,
                                                                          int timeToLive,
                                                                          int inactivityTime,
                                                                          int sharingPolicy,
                                                                          Object dependencyIds[],
                                                                          Object aliasIds[],
                                                                          boolean incrementRefCount,
                                                                          boolean skipMemoryAndWriteToDisk) throws DynamicCacheException {
  
          final String methodName = "putAndGet(..)";
          ValidateUtility.objectNotNull(key, "key", value, "value");
          if (skipMemoryAndWriteToDisk && !cache.getSwapToDisk()) {
              throw new DiskOffloadNotEnabledException("DiskOffloadNotEnabledException occurred. The disk offload feature for cache instance \"" + cache.getCacheName()
                                                       + "\" is not enabled.");
          }
          if (skipMemoryAndWriteToDisk == true && sharingPolicy != EntryInfo.NOT_SHARED) {
              //DYNA1072W=DYNA1072W: The cache id \"{0}\" will not be replicated to other servers because \"skipMemoryWriteToDisk\" is set to true. The sharing policy will be set to \"not-shared\".
              Tr.warning(tc, "DYNA1072W", new Object[] { key });
              sharingPolicy = EntryInfo.NOT_SHARED;
          }
          ValidateUtility.sharingPolicy(sharingPolicy);
          if (sharingPolicy == EntryInfo.SHARED_PUSH_PULL ||
              sharingPolicy == EntryInfo.SHARED_PULL) {
              invalidate(key, true);
          }
          EntryInfo ei = entryInfoPool.allocate(key, dependencyIds, aliasIds);
          ei.setUserMetaData(userMetaData);
          ei.setPriority(priority);
          ei.setTimeLimit(timeToLive);
          ei.setSharingPolicy(sharingPolicy);
          ei.setInactivity(inactivityTime);
          CacheEntry ce = cacheEntryPool.allocate();
          ce.copyMetaData(ei);
          ce.setValue(value);
          ce.setSkipMemoryAndWriteToDisk(skipMemoryAndWriteToDisk);
          if (value instanceof DistributedNioMapObject) {
              ce.useByteBuffer = true;
          }
          // only put and no get for when skipMemoryAndWriteToDisk is true ==> refcount will not increment
          com.ibm.websphere.cache.CacheEntry newEntry = cache.setEntry(ce, CachePerf.LOCAL, false, Cache.COORDINATE, incrementRefCount);
          ei.returnToPool();
  
          try {
  
              if (cache.getCacheConfig().isDefaultCacheProvider()) {
  
                  if (tc.isDebugEnabled()) {
                      if (newEntry != null) {
                          Tr.debug(tc, methodName + " " + cache.getCacheName() + " id=" + newEntry.getIdObject() + " incRefCount=" + incrementRefCount +
                                       " skipMemoryWriteToDisk=" + skipMemoryAndWriteToDisk);
                      }
                  }
  
                  if (ce.skipMemoryAndWriteToDisk) {
                      int errorCode = ce.skipMemoryAndWriteToDiskErrorCode;
                      StringBuffer message = new StringBuffer();
                      Exception ex = null;
                      switch (errorCode) {
                          case HTODDynacache.NO_EXCEPTION:
                              break;
                          case HTODDynacache.DISK_EXCEPTION:
                              message.append("The disk IO exception has occurred when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              ex = cache.getDiskCacheException();
                              if (ex != null) {
                                  message.append(ex.getMessage());
                              }
                              throw new DiskIOException(message.toString());
                          case HTODDynacache.DISK_SIZE_OVER_LIMIT_EXCEPTION:
                              message.append("Exception has occurred either (1) there is no disk space available, or (2) the disk cache size in GB s over the (diskCacheSizeInGB) limit when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              ex = cache.getDiskCacheException();
                              if (ex != null) {
                                  message.append(ex.getMessage());
                              }
                              throw new DiskSizeOverLimitException(message.toString());
                          case HTODDynacache.OTHER_EXCEPTION:
                              message.append("The runtime exception other than a Disk IOException has occurred when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              ex = cache.getDiskCacheException();
                              if (ex != null) {
                                  message.append(ex.getMessage());
                              }
                              throw new MiscellaneousException(message.toString());
                          case HTODDynacache.SERIALIZATION_EXCEPTION:
                              message.append("The serialization exception has occurred when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              throw new SerializationException(message.toString());
                          case HTODDynacache.DISK_SIZE_IN_ENTRIES_OVER_LIMIT_EXCEPTION:
                              message.append("The disk cache size in entries is over the (diskCacheSize) limit when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              throw new DiskSizeInEntriesOverLimitException(message.toString());
                          case HTODDynacache.DISK_CACHE_ENTRY_SIZE_OVER_LIMIT_EXCEPTION:
                              message.append("The cache entry size is over the configured disk cache entry size (diskCacheEntrySizeInMB) limit when writing cache ID: ");
                              message.append(ce.id);
                              message.append(" to the disk cache. ");
                              throw new DiskCacheEntrySizeOverLimitException(message.toString());
                      }
                  }
              }
          } finally {
              ce.value = ce.serializedValue = null; //prevent ce.reset from Nio object release
              ce.returnToPool();
          }
          return newEntry;
      }