[ 
https://issues.apache.org/jira/browse/CONNECTORS-1471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16234175#comment-16234175
 ] 

Karl Wright commented on CONNECTORS-1471:
-----------------------------------------

Hi [~dhotchkiss], the way it's supposed to work is as follows:

(1) The connector computes a version string in this method:

{code}

  public VersionContext getPipelineDescription(Specification spec) throws 
ManifoldCFException, ServiceInterruption;

{code}

(2) The indexing takes place in this method, which receives both the version 
string AND the specification:

{code}
  public int addOrReplaceDocumentWithException(String documentURI, 
VersionContext outputDescription, RepositoryDocument document, String 
authorityNameString, IOutputAddActivity activities) throws ManifoldCFException, 
ServiceInterruption, IOException;
{code}

(3) The removal method receives only the version string, BUT the version string 
is based on the specification, so you should be able to pack what you need into 
that version string, and unpack what you need.

If you look at other connectors, they create their version strings using 
pack/unpack methods provided by the framework (as superclass methods) 
explicitly for this purpose.  The author of the filesystem connector was not 
apparently aware of this and thus may not have provided a way of converting a 
version string back to a FileOutputSpecs object (usually, it would be a 
FileOutputSpecs(String packedString) method that does that).  You may need to 
write it if not there.


> FileOutputConnector.removeDocument() Root Path Check Always Fails 
> ------------------------------------------------------------------
>
>                 Key: CONNECTORS-1471
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-1471
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: File system connector
>    Affects Versions: ManifoldCF 2.8.1
>         Environment: Demonstrated on:
> OS: Linux RHEL 7 and Ubuntu 14.04, 
> Java Version: JDK 1.8,
> Databases: HSQL and PostgreSQL.
>            Reporter: David Hotchkiss
>            Assignee: Karl Wright
>            Priority: Major
>             Fix For: ManifoldCF 2.9
>
>
> The FileOutputConnector.removeDocument() method has a precondition check for 
> existence of the "root" path portion of the document location.  But the path 
> is not specified and the check is based on an empty StringBuffer which will 
> always fail.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to