[ 
https://issues.apache.org/jira/browse/CTAKES-151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13620159#comment-13620159
 ] 

Kim Ebert commented on CTAKES-151:
----------------------------------

In my patch I convert the Out to be a local variable, but this still doesn't 
allow multiple threads to do a read at the same time.

--- old/sources/gov/nih/nlm/nls/lvg/Api/LvgCmdApi.java  2013-01-09 23:10:44 
+0000
+++ new/sources/gov/nih/nlm/nls/lvg/Api/LvgCmdApi.java  2013-01-10 01:05:39 
+0000
@@ -43,6 +43,9 @@
 public class LvgCmdApi extends SystemOption
 {
     // public constructor
+
+       Out out = new Out();
+
     /**
     * Creates an LvgCmdApi object and initiate related data (default).
     * This constructor is consider as a preprocess method.
@@ -290,10 +304,10 @@
     */
     public String MutateToString(String inTerm) throws Exception
     {
-        Out.ResetOutString();
+       out.ResetOutString();
         // Process the mutation on the input term
         Process(inTerm, true);
-        return Out.GetOutString();
+        return out.GetOutString();
     }


                
> LVG is not thread safe for multiple instances inside of a single JVM.
> ---------------------------------------------------------------------
>
>                 Key: CTAKES-151
>                 URL: https://issues.apache.org/jira/browse/CTAKES-151
>             Project: cTAKES
>          Issue Type: Sub-task
>          Components: ctakes-lvg
>    Affects Versions: future enhancement, 3.0-incubating, 3.1-incubating
>            Reporter: Kim Ebert
>            Priority: Critical
>         Attachments: lvg_static_fix.patch
>
>
> The LVG library is not thread safe. It uses global variables, so between 
> multiple instances, the data will become corrupted.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to