docs: @Override
      public Object faultOnKey(EJBCache cache, Object key)
                      throws FaultException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "faultOnKey", key);
  
          ByteArray wrapperKey = (ByteArray) key;
          EJSWrapperCommon result = null; // f111627
  
          // Check if the beanId is already set on this key in which case
          // we can avoid the deserialize
          BeanId beanId = wrapperKey.getBeanId();
  
          try
          {
              if (beanId == null) {
                  beanId = BeanId.getBeanId(wrapperKey, container); // d140003.12
              }
              result = container.createWrapper(beanId);
          } catch (InvalidBeanIdException ex)
          {
              FFDCFilter.processException(ex, CLASS_NAME + ".faultOnKey", "533", this);
  
              // If the nested exception is an EJBNotFoundException, then report
              // that the app is not started/installed, rather than just the
              // generic 'Malformed object key'.                            d356676.1
              Throwable cause = ex.getCause();
              if (cause instanceof EJBNotFoundException)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                      Tr.event(tc, "Application Not Started", ex);
                  throw new FaultException((EJBNotFoundException) cause,
                                  "Application not started or not installed");
              }
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                  Tr.event(tc, "Malformed object key", ex);
              throw new FaultException(ex, "Malformed object key");
          } catch (Exception ex)
          {
              FFDCFilter.processException(ex, CLASS_NAME + ".faultOnKey", "548", this);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                  Tr.event(tc, "Malformed object key", ex);
              throw new FaultException(ex, "Malformed object key");
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "faultOnKey");
  
          return result;
      }