#summary frequently asked questions with answers

= Developer FAQ =

* How should one handle repository being unavailable during init()?

It is OK for init() to error if repository is unavailable, as the
!GsaCommunicationHandler will retry init() using exponential backoff
(starting at some seconds and maxing out at an hour) until it is interrupted, shutdown, or successful.


* How do I get a reference to the !DocIdPusher?

Use !AdaptorContext.getDocIdPusher() that you get in init.


* How do I feed document that has changed?

Send a Record for that !DocId with crawl-immediately being true.


* How do I feed a document that has been deleted?

Tell the GSA to crawl the document, which will result in 404, which will result in a deletion.  If you'd like you can set delete to be true in Record, but that's not necessary.


* How do I make an ACL?

Use Acl.Builder


* Can I represent multiple ACLs for same document?

Yes. 

Consider: some/path/Folder and some/path/Folder/File

Acls:<br>
some/path/Folder (sent via retriever)<br>
generated/inherit_file/some/path/Folder (sent via pushNamedResources)<br>
generated/inherit_folder/some/path/Folder (sent via pushNamedResources)<br>
some/path/Folder/File inherits from generated/inherit_file/some/path/Folder (sent via retriever)<br>

To send using pushNamedResources, create the other ACLs and then spawn a new thread that calls pushNamedResources.

* I'm getting interruption exception, what am I doing wrong?

The adaptor has 30 seconds to start sending content, and 3 minutes to complete sending content.  The config values are adaptor.docContentTimeoutSecs and adaptor.docHeaderTimeoutSecs.

* My adaptor freezes!

Windows users need JRE 1.7u6 or higher (earlier versions freeze) .

* My adaptor has a memory leak!

All users need at least JRE 1.6u27 or higher (earlier versions have a memory leak). 

* I'm seeing the same config name appear twice in dashboard?

Please double check that you don't have a Unicode invisible space character, that maybe was copied from a webpage or was inserted at the beginning of the file by your text editor, in your config name.