code: @Override
     public Set<HierarchicalProperty> getProperties(boolean namesOnly) throws PathNotFoundException,
        AccessDeniedException, RepositoryException
     {
        Set<HierarchicalProperty> props = super.getProperties(namesOnly);
  
        PropertyIterator jcrProps = node.getProperties();
        while (jcrProps.hasNext())
        {
           Property property = jcrProps.nextProperty();
           if (!COLLECTION_SKIP.contains(property.getName()))
           {
              QName name = namespaceContext.createQName(property.getName());
  
              try
              {
                 props.add((namesOnly) ? new HierarchicalProperty(name) : getProperty(name));
              }
              catch (UnsupportedOperationException exc)
              {
                 if (LOG.isDebugEnabled())
                 {
                    LOG.error(exc.getMessage(), exc);
                 }
              }
              catch (ClassCastException exc)
              {
                 if (LOG.isDebugEnabled())
                 {
                    LOG.error(exc.getMessage(), exc);
                 }
              }
              catch (IllegalArgumentException exc)
              {
                 if (LOG.isDebugEnabled())
                 {
                    LOG.error(exc.getMessage(), exc);
                 }
              }
              catch (PathNotFoundException exc)
              {
                 if (LOG.isDebugEnabled())
                 {
                    LOG.error(exc.getMessage(), exc);
                 }
              }
           }
        }
  
        return props;
     }
docs: {@inheritDoc}