Radwen ANIBA wrote: > Thank you for your email > > addCasProcessor is not recognized as a method for CPMImpl, there is > addCasConsumer but I don't know if it does the same thing >
It's not the same thing. I see addCasProcessor is a method in BaseCPMImpl, and CPMImpl inherits from BaseCPMImpl. So you should be able to use this method. -Marshall > 2010/2/3 Marshall Schor <[email protected]> > > >> Radwen ANIBA wrote: >> >>> Hello, >>> >>> I have devoloped a serie of AEs that I tested through CPE GUI,and now I'm >>> trying to write a java aplication using these AEs and trying to do th >>> >> same >> >>> thing as CPE GUI. So I took as reference SimpleRunCPM example and I made >>> these changes >>> >>> // create a new Collection Processing Manager >>> mCPM = UIMAFramework.newCollectionProcessingManager(); >>> >>> // Register AE and CAS Consumer with the CPM >>> mCPM.setAnalysisEngine(ae1); >>> mCPM.setAnalysisEngine(ae2); >>> mCPM.setAnalysisEngine(ae3); >>> mCPM.setAnalysisEngine(ae4); >>> >>> Notice here I have 4 ae and not only one >>> >>> So when running this I have an error message in >>> >> mCPM.setAnalysisEngine(ae2) >> >>> saying >>> >>> Initializing AnalysisEngines >>> Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, >>> Size: 0 >>> at java.util.LinkedList.entry(LinkedList.java:365) >>> at java.util.LinkedList.remove(LinkedList.java:357) >>> at >>> >>> >> org.apache.uima.collection.impl.cpm.engine.CPMEngine.removeCasProcessor(CPMEngine.java:1188) >> >>> at >>> >>> >> org.apache.uima.collection.impl.cpm.BaseCPMImpl.removeCasProcessor(BaseCPMImpl.java:361) >> >>> at >>> >>> >> org.apache.uima.collection.impl.cpm.CPMImpl.setAnalysisEngine(CPMImpl.java:70) >> >>> So I don't know what is really the problem, if CPM do not take up to one >>> >> ae >> >>> or this is a problem in ae2 that I already tried without any bug. >>> >>> >> Looking at the code, it appears that the CPMImpl class has two different >> approaches for managing Analysis Engines AE. One approach assumes there >> is only one AE. This approach is used with methods like >> setAnalysisEngine, getAnalysisEngine, etc. These set and remove the one >> (and only) AE. If you try and set more than one AE, the previously set >> AE is removed, and the next AE is substituted for it, which is not what >> you are trying to do, of course. >> >> There are other methods that permit multiple analysis engines. These >> are methods like addCasProcessor. >> >> Try changing setAnalysisEngine to addCasProcessor. >> >> The error stack trace reveals this part of the framework code is buggy. >> I'll submit a bug report. >> >> -Marshall >> >> >>> Any idea ? >>> >>> Thx >>> >>> Rad >>> >>> >>> > >
