You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "Caleb Meier (JIRA)" <ji...@apache.org> on 2018/01/10 15:52:00 UTC

[jira] [Created] (RYA-430) Lazily Instantiate RyaSubGraphExporter

Caleb Meier created RYA-430:
-------------------------------

             Summary: Lazily Instantiate RyaSubGraphExporter 
                 Key: RYA-430
                 URL: https://issues.apache.org/jira/browse/RYA-430
             Project: Rya
          Issue Type: Bug
          Components: clients
    Affects Versions: 3.2.12
            Reporter: Caleb Meier
            Assignee: Caleb Meier


The RyaSubgraphExporter requires a FluoClient when it is constructed.  Unfortunately, the RyaSubGraphExporter factory creates the exporter when the QueryResultObserver is being initialized.  This is problematic in that if the observer is not initialized, then Fluo has not been initialized and a FluoClient cannot be created.  Instead, the RyaSubgraphExporter should be constructed using a FluoClient supplier that takes in the necessary configuration and lazily supplies and memoizes a FluoClient the first time the export method is invoked.  Additionally, as it is currently implemented, the RyaSubGraphExporter generates a Transaction within a Transaction which can lead to Exceptions being thrown if for some reason the outer transaction completes before the inner transaction.  Given how the Exporter interface is currently laid out, the exporter does not currently accept a transaction (nor should it).  Therefore, perhaps the RyaSubgraphExporter should be done away with altogether given that it merely inserts triples back into Fluo and is a placeholder for an Exporter that inserts triples back into Rya itself (once we resolve packaging issues to support full indexing).



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