I have written a test case, and can reproduce problems like this (not sure I'm reproducing the exact problem yet).
There may be several issues here to fix. The first one I came across is due to the following: A pear component does a "new Sentence(...)" call, where Sentence is a JCas type corresponding to a CAS type, but only defined in the pear component. This currently fails, solidly, as follows: * before starting, a "merged" type system is constructed; it includes the Sentence CAS type. * a previous annotator makes use of the JCas, causing the JCas to be instantiated (this is done lazily, on the first need). At the time it is instantiated, a JCas cover class for the CAS type "Sentence" is attempted to be loaded, but because it isn't defined, except in the Pear, it is not found. (This is normal - there is no requirement that all CAS type have corresponding JCas types). * (Bug appears now) When the Pear component's process method is called, the Java Class loaders are properly switched, and the process method call of "new Sentence(...)" proceeds to run. However, this presumes that the JCas has been previously initialized for this type (which was not "loadable" when the JCas was initialized earlier). So - as a result, this type is "missing" from internal JCas tables, which causes the message JCAS cover class "it.celi.types.Sentence_Type" could not be loaded. I'll work on a fix for this; I'm not sure what the cleanest way to approach this, yet. It's also not clear to me that this could/would explain the failure mode Roberto reported, so there may be more investigating to do. -Marshall Marshall Schor wrote: > I agree - the evidence points to this. I'll take a look. > > -Marshall > > Thilo Goetz wrote: > >> Marshall, this looks like some JCas class loading issue. >> Any ideas? >> >> --Thilo >> >> Roberto Franchini wrote: >> >> >>> On 10/25/07, Thilo Goetz <[EMAIL PROTECTED]> wrote: >>> >>> >>>> Is this with UIMA 2.2? >>>> >>>> >>> Yes, it is. On windows and on linux with Java 6. >>> I can switch to 2.3-snapshot, there's no problem. >>> I think i should increase some like number of threads or cas pool >>> size. But i remember I've seen in the CPM code that it auto sizes the >>> cas pool, am I right? >>> >>> Maybe Jape doesn't release something, but the exception happens in the >>> annotation mapper, a mapper the translate uima annotation to gate >>> ones. So it happens BEFORE jape is called inside the annotator. >>> >>> My mapper is strongly derived by the annotation printer from uima exmaples. >>> >>> I hope these details can help. >>> >>> >>> >> >> > > > >
