Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-3597

CollectionReader and Annotators not having access to the same ExternalResource instance

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.0uimaFIT
    • Fix Version/s: 2.1.0uimaFIT
    • Component/s: uimaFIT
    • Labels:
      None

      Description

      Creating a pipeline as follows:
      a. CollectionReader
      b. AnnotatorA
      c. AnnotatorB

      All the above (including the CollectionReader and the 2 annotators) have a
      dependency on an ExternalResource.

      Here's a shortened code that I used:
      // create the external resource desc
      ExternalResourceDescription myExternalResourceDesc =
      createExternalResourceDescription();

      // create the CollectionReaderDescription, with the external resource desc
      CollectionReaderDescription myCollectionReaderDesc =
      createDescription(myExternalResourceDesc);

      // create the MyAnnotatorA desc, with the external resource desc
      AnalysisEngineDescription myAnnotatorADesc =
      createPrimitiveDescription(myExternalResourceDesc);

      // create the MyAnnotatorB desc, with the external resource desc
      AnalysisEngineDescription myAnnotatorBDesc =
      createPrimitiveDescription(myExternalResourceDesc);

      // run
      SimplePipeline.runPipeline(myCollectionReaderDesc, myAnnotatorADesc,
      myAnnotatorBDesc);

      In the initialize(UimaContext context) method of collection reader and
      annotator, I print out the instance of the ExternalResource:
      MyCollectionReader:com.example.MyExternalResource <at> 26a7dd39
      MyAnnotatorA:com.example.MyExternalResource <at> 6ee1dac2
      MyAnnotatorB:com.example.MyExternalResource <at> 6ee1dac2

      As you can see, MyAnnotatorA and MyAnnotatorB got the same instance of the
      ExternalResource, but MyCollectionReader got a different instance.

      They should be accessing the same ExternalResource instance.

        Issue Links

          Activity

          Hide
          rec Richard Eckart de Castilho added a comment -

          Has been implemented for cases where uimaFIT (SimplePipeline / JCasIterable) is instantiating both, reader and AEs at the same time. Has not been implemented for cases where uimaFIT already receives externally instantiated readers or AEs. In the latter case, the caller is responsible for instantiating them with a common resource manager.

          Show
          rec Richard Eckart de Castilho added a comment - Has been implemented for cases where uimaFIT (SimplePipeline / JCasIterable) is instantiating both, reader and AEs at the same time. Has not been implemented for cases where uimaFIT already receives externally instantiated readers or AEs. In the latter case, the caller is responsible for instantiating them with a common resource manager.

            People

            • Assignee:
              rec Richard Eckart de Castilho
              Reporter:
              lriwswirl Swirl
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development