code: void repairRow(JDBCStorageConnection conn, ResultSet resultSet) throws SQLException
     {
        try
        {
           String parentId = getIdentifier(resultSet, DBConstants.COLUMN_PARENTID);
           InternalQName propertyName = InternalQName.parse(resultSet.getString(DBConstants.COLUMN_NAME));
           boolean multiValued = resultSet.getBoolean(DBConstants.COLUMN_PMULTIVALUED);
  
           PropertyDefinitionDatas def = null;
  
           try
           {
              NodeData parent = (NodeData)conn.getItemData(parentId);
  
              def =
                 nodeTypeManager.getPropertyDefinitions(propertyName, parent.getPrimaryTypeName(),
                    parent.getMixinTypeNames());
           }
           catch (PrimaryTypeNotFoundException e)
           {
              if (LOG.isTraceEnabled())
              {
                 LOG.trace(e.getMessage(), e);
              }
           }
  
           if (def == null || def.getDefinition(multiValued) == null || def.getDefinition(multiValued).isResidualSet())
           {
              String propertyId = getIdentifier(resultSet, DBConstants.COLUMN_ID);
              QPath path = new QPath(new QPathEntry[]{getQPathEntry(resultSet)});
  
              PropertyData data =
                 new TransientPropertyData(path, propertyId, 0, 0, null, false, new ArrayList<ValueData>());
  
              conn.delete(data, new SimpleChangedSizeHandler());
           }
           else
           {
              throw new SQLException("Propety is required by its parent.");
           }
        }
        catch (IllegalStateException e)
        {
           throw new SQLException(e);
        }
        catch (RepositoryException e)
        {
           throw new SQLException(e);
        }
        catch (IllegalNameException e)
        {
           throw new SQLException(e);
        }
     }
docs: {@inheritDoc}