code: @SuppressWarnings("PMD.PreserveStackTrace")
      public Object extractObject(ObjectToJsonConverter pConverter, Object pValue,
                                  Stack<String> pPathParts,boolean jsonify) throws AttributeNotFoundException {
          CompositeData cd = (CompositeData) pValue;
  
          String pathPart = pPathParts.isEmpty() ? null : pPathParts.pop();
          if (pathPart != null) {
              try {
                  return pConverter.extractObject(cd.get(pathPart), pPathParts, jsonify);
              } catch (InvalidKeyException exp) {
                  return pConverter.getValueFaultHandler().handleException(new AttributeNotFoundException("Invalid path '" + pathPart + "'"));
              }
          } else {
              return jsonify ? extractCompleteCdAsJson(pConverter, cd, pPathParts) : cd;
          }
      }
docs: {@inheritDoc}