Index: tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/WordAnnotationToolbar.java
===================================================================
--- tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/WordAnnotationToolbar.java	(revision 1703)
+++ tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/concordance/WordAnnotationToolbar.java	(revision 1704)
@@ -490,13 +490,15 @@
 		annotationTypesCombo.getCombo().setLayoutData(gdata);
 		annotationTypesCombo.setInput(typesList);
 		annotationTypesCombo.getCombo().select(0);
-		for (int i = 0 ; i < typesList.size(); i++) {
-			String name = typesList.get(i).getName();
-			if ("word".equals(name)) {
-				annotations.setViewAnnotation(typesList.get(i));
-				annotationColumn.setText(name);
-			}
-		}
+		annotations.setViewAnnotation(typesList.get(0));
+		annotationColumn.setText(typesList.get(0).getName());
+//		for (int i = 0 ; i < typesList.size(); i++) {
+//			String name = typesList.get(i).getName();
+//			if ("word".equals(name)) {
+//				annotations.setViewAnnotation(typesList.get(i));
+//				annotationColumn.setText(name);
+//			}
+//		}
 
 		annotationTypesCombo.addSelectionChangedListener(new ISelectionChangedListener() {
 			@Override
Index: tmp/TXMDevPlugins.site/site.xml
===================================================================
--- tmp/TXMDevPlugins.site/site.xml	(revision 1703)
+++ tmp/TXMDevPlugins.site/site.xml	(revision 1704)
@@ -1,3 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
+   <feature url="features/org.txm.ahc.feature_1.0.0.1680.jar" id="org.txm.ahc.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.annotation.feature_1.0.0.1680.jar" id="org.txm.annotation.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.annotation.kr.feature_1.0.0.1680.jar" id="org.txm.annotation.kr.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.annotation.urs.feature_1.0.0.1680.jar" id="org.txm.annotation.urs.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.backtomedia.feature_1.0.0.1680.jar" id="org.txm.backtomedia.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.ca.feature_1.0.0.1680.jar" id="org.txm.ca.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.chartsengine.jfreechart.feature_1.0.0.1680.jar" id="org.txm.chartsengine.jfreechart.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.chartsengine.r.feature_1.0.0.1680.jar" id="org.txm.chartsengine.r.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.concordance.feature_1.0.0.1680.jar" id="org.txm.concordance.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.cooccurrence.feature_1.0.0.1680.jar" id="org.txm.cooccurrence.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.cql2lsa.feature_1.0.0.1680.jar" id="org.txm.cql2lsa.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.dictionary.feature_1.0.0.1680.jar" id="org.txm.dictionary.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.edition.feature_1.0.0.1680.jar" id="org.txm.edition.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.groovy.feature_1.0.0.1680.jar" id="org.txm.groovy.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.index.feature_1.0.0.1680.jar" id="org.txm.index.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.internalview.feature_1.0.0.1680.jar" id="org.txm.internalview.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.lexicaltable.feature_1.0.0.1680.jar" id="org.txm.lexicaltable.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.partition.feature_1.0.0.1680.jar" id="org.txm.partition.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.progression.feature_1.0.0.1680.jar" id="org.txm.progression.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.properties.feature_1.0.0.1680.jar" id="org.txm.properties.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.referencer.feature_1.0.0.1680.jar" id="org.txm.referencer.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.searchengine.cqp.feature_1.0.0.1680.jar" id="org.txm.searchengine.cqp.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.specificities.feature_1.0.0.1680.jar" id="org.txm.specificities.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.statsengine.r.feature_1.0.0.1680.jar" id="org.txm.statsengine.r.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.svn.feature_1.0.0.1680.jar" id="org.txm.svn.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.textsbalance.feature_1.0.0.1680.jar" id="org.txm.textsbalance.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.tigersearch.feature_1.0.0.1680.jar" id="org.txm.tigersearch.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.translate.feature_1.0.0.1680.jar" id="org.txm.translate.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.treetagger.binaries.feature_1.0.0.1680.jar" id="org.txm.treetagger.binaries.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.treetagger.feature_1.0.0.1680.jar" id="org.txm.treetagger.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.treetagger.models.feature_1.0.0.1680.jar" id="org.txm.treetagger.models.feature" version="1.0.0.1680"/>
+   <feature url="features/org.txm.wordcloud.feature_1.0.0.1680.jar" id="org.txm.wordcloud.feature" version="1.0.0.1680"/>
 </site>

Property changes on: tmp/TXMDevPlugins.site
___________________________________________________________________
Added: svn:ignore
   + content.jar

features

artifacts.jar

logs.zip

plugins


Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 1703)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages.properties	(revision 1704)
@@ -12,7 +12,7 @@
 
 catalogFileNotFoundP0 = ** Catalog file {0} not found.
 
-checkingBinaryFormat = Checking binary corpus format…
+checkingBinaryFormat = Checking binary corpus format...
 
 common_absoluteFrequency         = Absolute Frequency
 common_cancel                    = Cancel
@@ -53,7 +53,7 @@
 
 couldntReadCorpusColon = ** Can not read the corpus data: 
 
-dataDirectoryIsMissingColonP0 = The 'data'' folder {0} is missing
+dataDirectoryIsMissingColonP0 = The ''data'' folder {0} is missing
 
 doesNotExists = \ does not exist.
 
@@ -111,9 +111,9 @@
 
 failedToExec = ** Failed to execute {0}: {1}.
 
-failedToExecTaskkillIMCqpserverexeFColon = ** Failed to execute 'taskkill /IM cqpserver.exe /F': {0}.
+failedToExecTaskkillIMCqpserverexeFColon = ** Failed to execute ''taskkill /IM cqpserver.exe /F'': {0}.
 
-failedToExecTskillCqpserverexeColon = ** Failed to execute 'tskill cqpserver.exe': {0}.
+failedToExecTskillCqpserverexeColon = ** Failed to execute ''tskill cqpserver.exe'': {0}.
 
 failedToGetLastCQPErrorColon = ** Failed to retrieve last CQP error: 
 
@@ -129,7 +129,7 @@
 
 file = ** File 
 
-fillImportxmlWithColon = Fill ‘'import.xml' file with: 
+fillImportxmlWithColon = Fill ''import.xml'' file with: 
 
 filterManagerErrorColonInitializationP0NotFound = ** Initialization error of the filter manager: {0} not found.
 
@@ -139,9 +139,9 @@
 
 focusIsEmptyOrNull = Focus is empty or null
 
-hasNoBase = has no ‘'root corpus'
+hasNoBase = has no ''root corpus'
 
-htmlDirectoryIsMissingColonP0 = The 'HTML' folder {0} is missing
+htmlDirectoryIsMissingColonP0 = The ''HTML'' folder {0} is missing
 
 iOColon = IO: 
 
@@ -151,17 +151,15 @@
 
 initializationOfGroovyImportScriptRunner = Initialization of GroovyImportScriptRunner
 
-isMissing = '{0}'' can not be found.
+isMissing = ''{0}'' can not be found.
 
 isNotAValidCQPIDForACorpusItMustBeInUppercaseCharacters = \ is not a valid CQP identifier for a corpus. It must be in uppercase characters.
 
 isNotAValidCQPIdForASubcorpusItMustBeAnUppercaseCharactersFollowedByLowercaseCharacters = \ is not a valid CQP identifier for a sub-corpus. It must be in uppercase followed by lowercase characters.
 
-killPsAuxPipeGrepCqpserverPipeAwkP = kill `ps aux | grep cqpserver | awk '/-P 
-
 languageColon = , Language: 
 
-loadingExtensions = Loading extensions…
+loadingExtensions = Loading extensions...
 
 loadingWorkspaceFromFileColonP0 = Loading workspace from the {0} file
 
@@ -183,13 +181,12 @@
 
 pARAMSColonP0 = Parameters: {0}
 
-parentDirectoryP0NotFound = Parent folder ‘'{0}' not found.
+parentDirectoryP0NotFound = Parent folder ''{0}'' not found.
 
-print2 = / {print $2}'`
 
-processing = Processing…
+processing = Processing...
 
-processingTextColonP0 = Processing file ‘'{0}'...
+processingTextColonP0 = Processing file ''{0}''...
 
 queryOnP0ColonP1InfP2 = Query on {0} : {1} <- {2}
 
@@ -197,11 +194,11 @@
 
 queryingPartitionP0 = Querying partition {0}
 
-readCorpusInfosFromOldImportxmlFileColonP0 = Reading the corpus properties from the ‘'import.xml' file: {0}
+readCorpusInfosFromOldImportxmlFileColonP0 = Reading the corpus properties from the ''import.xml'' file: {0}
 
 readError = ** Read error
 
-registryFileIsMissingColonP0 = The ‘''registry' file {0} is missing
+registryFileIsMissingColonP0 = The ''registry'' file {0} is missing
 
 reorganizingFilesOfP0 = reorganizing files of {0}
 
@@ -223,7 +220,7 @@
 
 theP0PartFocusDoesntBelongToPartitionP1 = There is no {0} part in the {1} partition.
 
-txmDirectoryIsMissingColonP0 = The 'txm'' folder {0} is missing
+txmDirectoryIsMissingColonP0 = The ''txm'' folder {0} is missing
 
 unknownPartitionName = ** Unknown partition name.
 
Index: tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 1703)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/TXMCoreMessages.java	(revision 1704)
@@ -14,11 +14,9 @@
 // FIXME: SJ: this class should be split in one containing only the core messages and another that contains the utils methods bind() and UTF-8 initializing
 // The new manager class should contain other helping method eg. some based on MessageFormat to manage plurals, etc.
 public class TXMCoreMessages extends NLS {
-
 	
 	private static final String BUNDLE_NAME = "org.txm.core.messages.messages"; //$NON-NLS-1$
 	
-
 	public static String common_cols;
 	public static String common_delete;
 	public static String common_description;
@@ -150,8 +148,6 @@
 	public static String failedToExecTaskkillIMCqpserverexeFColon; 
 	public static String orTheEngineWasNotStartedWithTheCommandLineColon; 
 	public static String failedToExecTskillCqpserverexeColon; 
-	public static String killPsAuxPipeGrepCqpserverPipeAwkP; 
-	public static String print2; 
 	public static String failedToExec; 
 	public static String connectedToCQP; 
 	public static String errorDuringWorkspaceInitializationColonP0; 
Index: tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 1703)
+++ tmp/org.txm.core/src/java/org/txm/core/messages/messages_fr.properties	(revision 1704)
@@ -157,8 +157,6 @@
 
 isNotAValidCQPIdForASubcorpusItMustBeAnUppercaseCharactersFollowedByLowercaseCharacters = \ n'est pas un identifiant de sous-corpus CQP valide. Il doit être en majuscules suivies de caractères minuscules.
 
-killPsAuxPipeGrepCqpserverPipeAwkP = kill `ps aux | grep cqpserver | awk '/-P 
-
 languageColon = , Langue : 
 
 loadingExtensions = Chargement des extensions...
@@ -185,7 +183,6 @@
 
 parentDirectoryP0NotFound = Dossier parent ''{0}'' introuvable.
 
-print2 = / {print $2}'`
 
 processing = Traitement en cours…
 
@@ -221,7 +218,7 @@
 
 theFocusIsEmptyOrNull = ** Le focus est vide ou nul.
 
-theP0PartFocusDoesntBelongToPartitionP1 = Il n'y a pas de partie {0} dans la partition {1}.
+theP0PartFocusDoesntBelongToPartitionP1 = Il n''y a pas de partie {0} dans la partition {1}.
 
 txmDirectoryIsMissingColonP0 = Le dossier '''txm'' {0} est manquant
 
Index: tmp/org.txm.core/.settings/org.eclipse.core.resources.prefs
===================================================================
--- tmp/org.txm.core/.settings/org.eclipse.core.resources.prefs	(revision 1703)
+++ tmp/org.txm.core/.settings/org.eclipse.core.resources.prefs	(revision 1704)
@@ -1,4 +1,5 @@
 eclipse.preferences.version=1
+encoding//src/java/org/txm/core/messages/messages.properties=UTF-8
 encoding//src/java/org/txm/core/messages/messages_fr.properties=UTF-8
 encoding//src/java/org/txm/core/messages/messages_ru.properties=UTF-8
 encoding/<project>=UTF-8
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1703)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1704)
@@ -361,7 +361,7 @@
 	 * kill cqpserver process.
 	 */
 	private static void killSearchEngine() {
-		if (!CQPLibPreferences.getInstance().getBoolean(CQPLibPreferences.CQI_SERVER_IS_REMOTE))
+		if (!CQPLibPreferences.getInstance().getBoolean(CQPLibPreferences.CQI_SERVER_IS_REMOTE) && cqiServer instanceof MemCqiServer) {
 			// Windows OS
 			if (OSDetector.isFamilyWindows()) {
 				try {
@@ -394,7 +394,7 @@
 			}
 		// Mac, Linux
 			else {
-				String cmd = TXMCoreMessages.killPsAuxPipeGrepCqpserverPipeAwkP + CQPLibPreferences.getInstance().getString(CQPLibPreferences.CQI_SERVER_PORT) + TXMCoreMessages.print2;
+				String cmd = "kill `ps aux | grep cqpserver | awk '/-P "+CQPLibPreferences.getInstance().getString(CQPLibPreferences.CQI_SERVER_PORT)+"/ {print $2}'`"; // //$NON-NLS-1$ //$NON-NLS-2$
 				try {
 					//Process p = Runtime.getRuntime().exec("killall -9 cqpserver"); //$NON-NLS-1$
 					// System.out.println("kill `ps aux | grep cqpserver | awk '/-P "
@@ -418,6 +418,7 @@
 					org.txm.utils.logger.Log.printStackTrace(e);
 				}
 			}
+		}
 	}
 
 	/**
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/MemCqiClient.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/MemCqiClient.java	(revision 1703)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/MemCqiClient.java	(revision 1704)
@@ -191,6 +191,9 @@
 
 	@Override
 	public int[] alg2Cpos(String arg0, int arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("alg2Cpos called with NULL parameter.");
+		}
 		int[] rez = server.alg2Cpos(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -200,6 +203,9 @@
 
 	@Override
 	public int attributeSize(String arg0) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("attributeSize called with NULL parameter.");
+		}
 		Integer ret = server.attributeSize(arg0);
 		if (ret == null || ret == -1) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -213,6 +219,9 @@
 
 	@Override
 	public String[] corpusAlignementAttributes(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusAlignementAttributes called with NULL parameter.");
+		}
 		String[] rez = server.corpusAlignementAttributes(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -222,6 +231,9 @@
 
 	@Override
 	public String corpusCharset(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusCharset called with NULL parameter.");
+		}
 		String rez = server.corpusCharset(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -231,6 +243,9 @@
 
 	@Override
 	public String corpusFullName(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusFullName called with NULL parameter.");
+		}
 		String rez = server.corpusFullName(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -251,6 +266,9 @@
 
 	@Override
 	public String[] corpusPositionalAttributes(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusPositionalAttributes called with NULL parameter.");
+		}
 		String[] rez = server.corpusPositionalAttributes(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -260,6 +278,9 @@
 
 	@Override
 	public String[] corpusProperties(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusProperties called with NULL parameter.");
+		}
 		String[] rez = server.corpusProperties(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -269,6 +290,9 @@
 
 	@Override
 	public boolean corpusStructuralAttributeHasValues(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusStructuralAttributeHasValues called with NULL parameter.");
+		}
 		Boolean rez = server.corpusStructuralAttributeHasValues(arg0);
 		if (rez == null || !rez) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -278,6 +302,9 @@
 
 	@Override
 	public String[] corpusStructuralAttributes(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("corpusStructuralAttributes called with NULL parameter.");
+		}
 		String[] rez = server.corpusStructuralAttributes(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -287,6 +314,9 @@
 
 	@Override
 	public int[] cpos2Alg(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2Alg called with NULL parameter.");
+		}
 		int[] rez = server.cpos2Alg(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -296,6 +326,9 @@
 
 	@Override
 	public int[] cpos2Id(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2Id called with NULL parameter.");
+		}
 		int[] rez = server.cpos2Id(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -305,6 +338,9 @@
 
 	@Override
 	public int[] cpos2LBound(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2LBound called with NULL parameter.");
+		}
 		int[] rez = server.cpos2LBound(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -314,6 +350,9 @@
 
 	@Override
 	public int[] cpos2RBound(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2RBound called with NULL parameter.");
+		}
 		int[] rez = server.cpos2RBound(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -323,6 +362,9 @@
 
 	@Override
 	public String[] cpos2Str(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2Str called with NULL parameter.");
+		}
 		String[] rez = server.cpos2Str(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -332,6 +374,9 @@
 
 	@Override
 	public int[] cpos2Struc(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("cpos2Struc called with NULL parameter.");
+		}
 		int[] rez = server.cpos2Struc(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -342,6 +387,9 @@
 	@Override
 	public void cqpQuery(String arg0, String arg1, String arg2)
 			throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg1 == null || arg2 == null) {
+			throw new CqiServerError("cqpQuery called with NULL parameter.");
+		}
 		Boolean ret = server.cqpQuery(arg0, arg1, arg2);
 		//System.out.println("CQPSERVER return: "+ret);
 		if(ret == null || !ret) {
@@ -353,6 +401,9 @@
 
 	public void query(String arg0)
 			throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("query called with NULL parameter.");
+		}
 		Boolean ret = server.query(arg0);
 		if(ret == null || !ret) {
 			System.out.println(CQPSearchEngineCoreMessages.queryError);
@@ -375,17 +426,21 @@
 	@Override
 	public void dropCorpus(String arg0) throws Exception {
 		Log.finest(NLS.bind("Droping corpus {0}...", arg0)); //$NON-NLS-1$
-		
+		if (arg0 == null) {
+			throw new Exception("dropCorpus called with NULL parameter.");
+		}
 		Boolean ret = server.dropCorpus(arg0);
 		if(ret == null || !ret) {
 			throwExceptionFromCqi(server.getErrorCode());
 		}
 	}
-
+ 
 	@Override
 	public void dropSubCorpus(String arg0) throws IOException, UnexpectedAnswerException, CqiServerError {
 		Log.finest(NLS.bind("Droping subcorpus {0}...", arg0)); //$NON-NLS-1$
-
+		if (arg0 == null) {
+			throw new CqiServerError("dropSubCorpus called with NULL parameter.");
+		}
 		Boolean ret = server.dropSubCorpus(arg0);
 		if (ret == null || !ret) {
 			throwExceptionFromCqi("Fail to drop subcorpus "+arg0+": ", server.getErrorCode());
@@ -395,6 +450,9 @@
 	@Override
 	public int[] dumpSubCorpus(String arg0, byte arg1, int arg2, int arg3)
 			throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("dumpSubCorpus called with NULL parameter.");
+		}
 		int[] rez = server.dumpSubCorpus(arg0, arg1, arg2, arg3);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -405,10 +463,11 @@
 	@Override
 	public int[][] fdist1(String arg0, int arg1, byte arg2, String arg3)
 			throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg3 == null) {
+			throw new CqiServerError("fdist1 called with NULL parameter.");
+		}
 		int[] all = nfdist1(arg0, arg1, arg2, arg3);
-		if (all == null) {
-			return new int[0][0];
-		}
+
 		int[][] freqs = new int[all.length / 2][2];
 		int c = 0;
 		for (int i = 0 ; i < freqs.length ;i++) {
@@ -421,6 +480,9 @@
 
 	public int[] nfdist1(String arg0, int arg1, byte arg2, String arg3)
 			throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg3 == null) {
+			throw new CqiServerError("nfdist1 called with NULL parameter.");
+		}
 		int[] rez = server.nfdist1(arg0, arg1, arg2, arg3);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -432,6 +494,9 @@
 	public int[][] fdist2(String arg0, int arg1, byte arg2, String arg3,
 			byte arg4, String arg5) throws IOException,
 			UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg3 == null || arg5 == null) {
+			throw new CqiServerError("fdist2 called with NULL parameter.");
+		}
 		int[] all = nfdist2(arg0, arg1, arg2, arg3, arg4, arg5);
 		if (all == null) {
 			return new int[0][0];
@@ -448,6 +513,9 @@
 
 	public int[] nfdist2(String arg0, int arg1, byte arg2, String arg3,
 			byte arg4, String arg5) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg3 == null || arg5 == null) {
+			throw new CqiServerError("nfdist2 called with NULL parameter.");
+		}
 		int[] rez = server.nfdist2(arg0, arg1, arg2, arg3, arg4, arg5);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -475,6 +543,9 @@
 
 	@Override
 	public int[] id2Cpos(String arg0, int arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("id2Cpos called with NULL parameter.");
+		}
 		int[] rez = server.id2Cpos(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -484,6 +555,9 @@
 
 	@Override
 	public int[] id2Freq(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("id2Freq called with NULL parameter.");
+		}
 		int[] rez = server.id2Freq(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -493,6 +567,9 @@
 
 	@Override
 	public String[] id2Str(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("id2Str called with NULL parameter.");
+		}
 		String[] rez = server.id2Str(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -502,6 +579,9 @@
 
 	@Override
 	public int[] idList2Cpos(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("idList2Cpos called with NULL parameter.");
+		}
 		int[] rez = server.idList2Cpos(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -511,6 +591,9 @@
 
 	@Override
 	public int lexiconSize(String arg0) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("lexiconSize called with NULL parameter.");
+		}
 		Integer rez = server.lexiconSize(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -529,6 +612,9 @@
 
 	@Override
 	public String[] listSubcorpora(String arg0) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("listSubcorpora called with NULL parameter.");
+		}
 		String[] rez = server.listSubcorpora(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -541,6 +627,9 @@
 
 	@Override
 	public int[] regex2Id(String arg0, String arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("regex2Id called with NULL parameter.");
+		}
 		int[] rez = server.regex2Id(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -550,6 +639,9 @@
 
 	@Override
 	public int[] str2Id(String arg0, String[] arg1) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("str2Id called with NULL parameter.");
+		}
 		int[] rez = server.str2Id(arg0, arg1);
 		if (rez == null) {
 			//System.out.println("error: "+server.getErrorCode());
@@ -560,6 +652,9 @@
 
 	@Override
 	public int[] struc2Cpos(String arg0, int arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("struc2Cpos called with NULL parameter.");
+		}
 		int[] rez = server.struc2Cpos(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -569,6 +664,9 @@
 
 	@Override
 	public String[] struc2Str(String arg0, int[] arg1) throws UnexpectedAnswerException, IOException, CqiServerError {
+		if (arg0 == null || arg1 == null) {
+			throw new CqiServerError("struc2Str called with NULL parameter.");
+		}
 		String[] rez = server.struc2Str(arg0, arg1);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -587,6 +685,9 @@
 
 	@Override
 	public int subCorpusSize(String arg0) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (arg0 == null) {
+			throw new CqiServerError("subCorpusSize called with NULL parameter.");
+		}
 		Integer rez = server.subCorpusSize(arg0);
 		if (rez == null) {
 			throwExceptionFromCqi(server.getErrorCode());
@@ -596,6 +697,12 @@
 
 	@Override
 	public boolean load_a_system_corpus(String regfilepath, String entry) throws IOException, UnexpectedAnswerException, CqiServerError {
+		if (regfilepath == null) {
+			throw new CqiServerError("load_a_system_corpus called with NULL regfilepath parameter.");
+		}
+		if (entry == null) {
+			throw new CqiServerError("load_a_system_corpus called with NULL entry parameter.");
+		}
 		return server.load_a_system_corpus(regfilepath, entry);
 	}
 }
\ No newline at end of file
Index: tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/editor/AnnotationExtension.java
===================================================================
--- tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/editor/AnnotationExtension.java	(revision 1703)
+++ tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/editor/AnnotationExtension.java	(revision 1704)
@@ -17,6 +17,7 @@
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.ToolItem;
+import org.txm.annotation.rcp.messages.AnnotationUIMessages;
 import org.txm.concordance.core.functions.Concordance;
 import org.txm.core.results.TXMResult;
 import org.txm.objects.Text;
@@ -121,7 +122,7 @@
 
 		defaultListener = listeners.get(0);
 		String defaultMode = modes.get(0);
-		controlArea = editor.getTopToolbar().installAlternativesGroup(GROUP_NAME, defaultMode,
+		controlArea = editor.getTopToolbar().installAlternativesGroup(GROUP_NAME, AnnotationUIMessages.annotateWordProperty,
 				"platform:/plugin/org.txm.rcp/icons/functions/pencil_open.png", 
 				"platform:/plugin/org.txm.rcp/icons/functions/pencil_close.png", false, 
 				openCloseSelectionListener, modes, listeners);
Index: tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages_fr.properties	(revision 1703)
+++ tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages_fr.properties	(revision 1704)
@@ -1,2 +1,4 @@
 #TXM messages generated by the PluginMessagesManager class
 #Tue Dec 18 10:24:08 CET 2018
+
+annotateWordProperty=Annoter la propri�t� "word" des mots
\ No newline at end of file
Index: tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/AnnotationUIMessages.java
===================================================================
--- tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/AnnotationUIMessages.java	(revision 1703)
+++ tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/AnnotationUIMessages.java	(revision 1704)
@@ -14,6 +14,7 @@
 public class AnnotationUIMessages extends NLS {
 
 	private static final String BUNDLE_NAME = "org.txm.annotation.rcp.messages.messages"; //$NON-NLS-1$
+	public static String annotateWordProperty;
 	
 	static {
 		// initialize resource bundle
Index: tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages.properties	(revision 1703)
+++ tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/messages/messages.properties	(revision 1704)
@@ -1,2 +1,3 @@
 #TXM messages generated by the PluginMessagesManager class
 #Tue Dec 18 10:24:08 CET 2018
+annotateWordProperty=Annotate the "word" property
\ No newline at end of file
