Index: tmp/org.txm.setups/index.html
===================================================================
--- tmp/org.txm.setups/index.html	(revision 1615)
+++ tmp/org.txm.setups/index.html	(revision 1616)
@@ -3,23 +3,34 @@
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <meta name="generator" content="ReText 4.1.2">
 <link rel="stylesheet" type="text/css" href="index_files/sf.css">
-<title>Téléchargement de TXM 0.8.0 α2</title>
+<title>Téléchargements | TXM 0.8.0 beta | Downloads</title>
 </head>
 <body>
 <hr/>
 
-<h1 align="center">Téléchargement de <span class="big">&nbsp;TXM 0.8.0&nbsp;</span> α<br>
+<h1 align="center">Téléchargements <span class="big">&nbsp;TXM 0.8.0 beta&nbsp;</span> Downloads<br>
 <!--<img src="index_files/txm-icon.jpg"><br>-->
 <!-- <small><a href="#fr">(instructions d'installation en français ci-dessous - FR FR FR)</a></small> -->
 </h1>
 <div style="background-image:url('index_files/TXM-background.jpg');background-repeat: no-repeat;background-position: right;">
 
+<p>Version 1</p>
+
 <table >
-<td><center><a href="TXM_0.8.0a3_Win64_installer.exe"><img width="125" src="index_files/windows-icon.png"/><br>Windows 7 et plus (64 bit)</a></center></td>
-<td><center ><a href="TXM_0.8.0a3_Linux64_installer.deb"><img width="125" src="index_files/ubuntu-icon.png"/><br>Ubuntu 16.04 et plus</a><br></center></li><td>
-<td><center ><a href="TXM_0.8.0a3_MacOSX_installer.pkg"><img width="125" src="index_files/macosx-icon.png"/><br>Mac OS X 10.10 et plus</a><br></center></li><td>
+<td><center><a href="TXM_0.8.0b1_Win64_installer.exe"><img width="125" src="index_files/windows-icon.png"/><br>Windows 7 et plus (64 bit)</a></center></td>
+<td><center ><a href="TXM_0.8.0b1_Linux64_installer.deb"><img width="125" src="index_files/ubuntu-icon.png"/><br>Ubuntu 16.04 et plus</a><br></center></li><td>
+<td><center ><a href="TXM_0.8.0b1_MacOSX_installer.pkg"><img width="125" src="index_files/macosx-icon.png"/><br>Mac OS X 10.10 et plus</a><br></center></li><td>
 </table>
 
+<!--
+<p><b>versions antérieures</b><br/>
+
+b4&nbsp;<a href="TXM_0.8.0b4_Win64_installer.exe">Windows</a>&nbsp;<a href="TXM_0.8.0b4_Linux64_installer.deb">Ubuntu</a>&nbsp;<a href="TXM_0.8.0b4_MacOSX_installer.pkg">Mac OS X</a><br/>
+b3&nbsp;<a href="TXM_0.8.0b3_Win64_installer.exe">Windows</a>&nbsp;<a href="TXM_0.8.0b3_Linux64_installer.deb">Ubuntu</a>&nbsp;<a href="TXM_0.8.0b3_MacOSX_installer.pkg">Mac OS X</a><br/>
+b2&nbsp;<a href="TXM_0.8.0b2_Win64_installer.exe">Windows</a>&nbsp;<a href="TXM_0.8.0b2_Linux64_installer.deb">Ubuntu</a>&nbsp;<a href="TXM_0.8.0b2_MacOSX_installer.pkg">Mac OS X</a><br/>
+b1&nbsp;<a href="TXM_0.8.0b1_Win64_installer.exe">Windows</a>&nbsp;<a href="TXM_0.8.0b1_Linux64_installer.deb">Ubuntu</a>&nbsp;<a href="TXM_0.8.0b1_MacOSX_installer.pkg">Mac OS X</a><br/>
+</p>-->
+
 <h2>Recettes</h2>
 <ul>
 <li><a href="https://groupes.renater.fr/wiki/txm-info/public/roadmap_0.8#recette_0_-_installation_multiple">Recette 0 </a>: installation</li>
Index: tmp/org.txm.setups/shared/all/samples/GRAAL.txm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.setups/shared/all/samples/GRAAL.txm
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorporaDirectory.java	(revision 1616)
@@ -28,7 +28,11 @@
 package org.txm.rcp.commands.workspace;
 
 import java.io.File;
+import java.io.FileFilter;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
 
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -36,10 +40,14 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.Toolbox;
 import org.txm.core.engines.EngineType;
@@ -49,10 +57,12 @@
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.swt.dialog.LastOpened;
 import org.txm.rcp.utils.JobHandler;
+import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.core.SearchEngine;
 import org.txm.searchengine.core.SearchEnginesManager;
 import org.txm.utils.io.IOUtils;
 import org.txm.utils.logger.Log;
+import org.txm.utils.zip.Zip;
 
 /**
  * Create projects from one binary corpus directory
@@ -84,23 +94,25 @@
 			
 			if (directory.exists()) {
 				LastOpened.set(ID, directory);
-				return loadBinaryCorpusFromCorporaDirectory(directory);
+				return loadBinaryCorpusFromCorporaDirectory(directory, true, true);
 			}
 		}
 		return null;
 	}
 
 	/**
-	 * stop engines, load binary corpora from a directory, restart engines and refresh views
+	 * stop engines, try loading binary corpora from a directory, restart engines and refresh views
 	 * 
 	 * @param directory
 	 * @return
 	 */
-	public static JobHandler loadBinaryCorpusFromCorporaDirectory(final File directory) {
+	public static JobHandler loadBinaryCorpusFromCorporaDirectory(final File directory, final boolean askSelection, final boolean replace) {
 		
-		JobHandler jobhandler = new JobHandler("Scanning "+directory+"...", true) {
+		JobHandler jobhandler = new JobHandler("Loading corpora from "+directory+"...", true) {
+			
+			JobHandler self = this;
 			@Override
-			protected IStatus run(IProgressMonitor monitor) {
+			protected IStatus run(final IProgressMonitor monitor) {
 				this.runInit(monitor);
 
 				try {
@@ -112,7 +124,7 @@
 				
 				File corporaDirectory = new File(Toolbox.getTxmHomePath(), "corpora");
 				if (!corporaDirectory.exists()) {
-					System.out.println("Corpora directory not found. Aborting.");
+					Log.severe("Corpora directory not found. Aborting.");
 					try {
 						SearchEnginesManager.getCQPSearchEngine().start(null);
 					} catch (Exception e) {
@@ -122,7 +134,27 @@
 					return Status.CANCEL_STATUS;
 				}
 				
-				final ArrayList<Project> newProjects = loadBinaryCorpusFromCorporaDirectory(directory, this, monitor);
+				
+				final ArrayList<Project> newProjects = new ArrayList<Project>();
+				if (askSelection) {
+					
+					this.syncExec(new Runnable() {
+						@Override
+						public void run() {
+							List<File>  files = getBinaryCorpusSelection(directory);
+							ArrayList<Project> tmp = loadBinaryCorpusFromCorporaDirectory(files, self, monitor, replace);
+							if (tmp != null) {
+								newProjects.addAll(tmp);
+							}
+						}
+					});
+					
+				} else { // try loading corpora and dont replace existing corpus
+					ArrayList<Project> tmp = loadBinaryCorpusFromCorporaDirectory(directory, this, monitor, replace);
+					if (tmp != null) {
+						newProjects.addAll(tmp);
+					}
+				}
 
 				this.acquireSemaphore();
 				try {
@@ -139,7 +171,9 @@
 						e.printStackTrace();
 					}
 				}
-				System.out.println(NLS.bind(TXMUIMessages.P0CorpusLoaded, newProjects.size()));
+				if (newProjects.size() > 0) {
+					System.out.println(NLS.bind(TXMUIMessages.P0CorpusLoaded, newProjects.size()));
+				}
 				
 				this.syncExec(new Runnable() {
 					@Override
@@ -157,16 +191,98 @@
 		jobhandler.schedule();
 		return jobhandler;
 	}
+	
+	protected static List<File> getBinaryCorpusSelection(File directory) {
+		ArrayList<File> selectedFiles = new ArrayList<File>();;
+		if (!directory.isDirectory()) return selectedFiles;
+		if (!directory.exists()) return selectedFiles;
+		
+		Shell shell = null;
+		
+		if (Display.getCurrent() != null) {
+			shell = Display.getCurrent().getActiveShell();
+		} else if (Display.getDefault() == null) {
+			shell = Display.getDefault().getActiveShell();
+		} else if (Display.findDisplay(Thread.currentThread()) != null) {
+			shell = Display.findDisplay(Thread.currentThread()).getActiveShell();
+		} else {
+			return selectedFiles;
+		}
+		File[] files = directory.listFiles(new FileFilter() {
+			
+			@Override
+			public boolean accept(File arg0) {
+				return IOUtils.HIDDENFILE_FILTER.accept(arg0) && arg0.getName().endsWith(".txm");
+			}
+		});
+		Arrays.sort(files, new Comparator<File>() {
+			@Override
+			public int compare(File o1, File o2) {
+				int i = o1.getName().compareTo(o2.getName());
+				if (i == 0) {
+					return (int) (o1.lastModified() - o2.lastModified());
+				}
+				return i;
+			}
+		});
+		
+		ListSelectionDialog lsd = new ListSelectionDialog(shell, files, new ArrayContentProvider(), new LabelProvider() {
 
+			@Override
+			public String getText(Object element) {
+				if (element == null) return "error";
+				
+				if (!(element instanceof File)) return "not a file ("+element+")";
+				
+				File f = (File) element;
+				if (f.isDirectory()) {
+					if (new File(f, ".settings").exists()) {
+						return f.getName().toUpperCase()+" ("+f+")";
+					} else if (new File(f, "import.xml").exists()) {
+						return f.getName().toUpperCase()+" ("+f+")";
+					}
+				} else if (f.getName().endsWith(".txm")) {
+					return Zip.getRoot(f).toUpperCase()+" ("+f+")";
+				}
+				
+				return "not a txm corpus ("+f+")";
+			}
+		}, "Select the '.txm' corpus to load.");
+		lsd.setInitialSelections(files);
+		lsd.setTitle("Corpus load");
+		if (lsd.open() == ListSelectionDialog.OK) {
+			System.out.println(lsd.getResult());
+			for (Object o : lsd.getResult()) {
+				selectedFiles.add(new File(o.toString()));
+			}
+		}
+		
+		return selectedFiles;
+	}
+
 	/**
 	 * dont manage SearchEngine state
 	 * 
+	 * @param files2
+	 * @param job
+	 * @param monitor
+	 * @return the loaded projects
+	 */
+	protected static ArrayList<Project> loadBinaryCorpusFromCorporaDirectory(File directory, JobHandler job, IProgressMonitor monitor, boolean replace) {
+		File[] files = directory.listFiles(IOUtils.HIDDENFILE_FILTER);
+		return loadBinaryCorpusFromCorporaDirectory(Arrays.asList(files), job, monitor, replace);
+	}
+
+	/**
+	 * dont manage SearchEngine state
+	 * 
 	 * @param corporaDirectory
 	 * @param job
 	 * @param monitor
-	 * @return
+	 * @param replace if true replace existing corpus
+	 * @return the loaded projects
 	 */
-	protected static ArrayList<Project> loadBinaryCorpusFromCorporaDirectory(File corporaDirectory, JobHandler job, IProgressMonitor monitor) {
+	protected static ArrayList<Project> loadBinaryCorpusFromCorporaDirectory(List<File> corporaFiles, JobHandler job, IProgressMonitor monitor, boolean replace) {
 		
 		ArrayList<Project> projects = new ArrayList<Project>();
 		
@@ -183,28 +299,29 @@
 			job.releaseSemaphore();
 
 			monitor.subTask(TXMUIMessages.loadingTheCorpusInThePlatform);
-			for (File corpusDirectory : corporaDirectory.listFiles(IOUtils.HIDDENFILE_FILTER)) {
+			for (File corpusDirectory : corporaFiles) {
 				if (corpusDirectory.isHidden()) {
 					continue;
 				}
 				
 				Project project = Toolbox.workspace.getProject(corpusDirectory.getName().toUpperCase());
 				if (project != null) {
-					System.out.println("A corpus named "+corpusDirectory.getName().toUpperCase()+" is already loaded. Aborting the loading of "+corpusDirectory);
+					Log.warning("A corpus named "+corpusDirectory.getName().toUpperCase()+" is already loaded. Aborting the loading of "+corpusDirectory);
 					continue;
 				}
 				
 				if (corpusDirectory.isDirectory()) {
-					project = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory, monitor);
+				//	project = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory, monitor, replace);
+					continue;
 				} else if (corpusDirectory.getName().endsWith(".txm")) {
-					project = LoadBinaryCorpus.loadBinaryCorpusArchive(corpusDirectory, job, monitor);
+					project = LoadBinaryCorpus.loadBinaryCorpusArchive(corpusDirectory, job, monitor, replace);
 				} else {
 					continue; // not a corpus
 				}
 
 //				Project base = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(corpusDirectory);
 				if (project == null) {
-					Log.severe("Error: fail to load binary corpus: "+corpusDirectory);
+					Log.warning("Failed to load binary corpus: "+corpusDirectory);
 				} else {
 					projects.add(project);
 				}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load079BinaryCorpus.java	(revision 1616)
@@ -36,6 +36,7 @@
 import org.txm.objects.Project;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.DeleteDir;
 import org.txm.utils.logger.Log;
 import org.txm.utils.zip.Zip;
 
@@ -60,32 +61,42 @@
 	 * 3- unzip the archive
 	 * 4- load the binary corpus directory
 	 * 5- restart TXM engines
+	 * @param replace 
 	 * @throws Exception 
 	 */
-	public static Project loadBinaryCorpusArchive(final File zipFile, IProgressMonitor monitor) throws Exception {
+	public static Project loadBinaryCorpusArchive(final File zipFile, IProgressMonitor monitor, boolean replace) throws Exception {
 
 		final File corporaDir = Toolbox.workspace.getLocation(); //$NON-NLS-1$
 		corporaDir.mkdir();
+		
+		if (!canLoad(zipFile)) {
+			System.out.println(TXMUIMessages.binaryCorpusIsNotATXM079CorpusNoImportXmlFile);	
+			return null;
+		}
 
 		String basedirname = Zip.getRoot(zipFile);
 
 		Project p = Toolbox.workspace.getProject(basedirname.toUpperCase());
 		if (p != null) {
-			System.out.println(NLS.bind(TXMUIMessages.abortingLoadingOfPOACorpusWithTheSameNameAlreadyExists, zipFile));
-			return null;
+			if (replace) {
+				p.delete();
+			} else {
+				System.out.println(NLS.bind(TXMUIMessages.abortingLoadingOfPOACorpusWithTheSameNameAlreadyExists, zipFile));
+				return null;
+			}
+			
 		}
 		
 		File corpusDirectory = new File(corporaDir, basedirname);
-		if (corpusDirectory.exists()) {
-			System.out.println("Aborting loading of "+zipFile+". A directory with the same name already exists: "+corpusDirectory);
-			return null;
+		if (replace) {
+			DeleteDir.deleteDirectory(corpusDirectory);
+		} else {
+			if (corpusDirectory.exists()) {
+				System.out.println("Aborting loading of "+zipFile+". A directory with the same name already exists: "+corpusDirectory);
+				return null;
+			}
 		}
-
-		if (!canLoad(zipFile)) {
-			System.out.println(TXMUIMessages.binaryCorpusIsNotATXM079CorpusNoImportXmlFile);	
-			return null;
-		}
-
+		
 		System.out.println(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM079Corpus, zipFile.getName()));
 
 		//ZIPPED FILE
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/LoadBinaryCorpus.java	(revision 1616)
@@ -106,7 +106,7 @@
 			}
 		} else {
 			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
-			dialog.setFilterExtensions(new String[]{"*.txm", "*.zip"});
+			dialog.setFilterExtensions(new String[]{"*.txm"});
 			if (LastOpened.getFile(ID) != null) {
 				dialog.setFilterPath(LastOpened.getFolder(ID));
 				dialog.setFileName(LastOpened.getFile(ID));
@@ -213,7 +213,7 @@
 			@Override
 			protected IStatus run(final IProgressMonitor monitor) {
 				this.runInit(monitor);
-				final Project newProject2 = loadBinaryCorpusArchive(zipFile, this, monitor);
+				final Project newProject2 = loadBinaryCorpusArchive(zipFile, this, monitor, false);
 
 				this.syncExec(new Runnable() {
 					@Override
@@ -257,9 +257,10 @@
 	 * @param zipFile
 	 * @param jobhandler
 	 * @param monitor
+	 * @param replace 
 	 * @return
 	 */
-	public static Project loadBinaryCorpusArchive(File zipFile, JobHandler jobhandler, final IProgressMonitor monitor) {
+	public static Project loadBinaryCorpusArchive(File zipFile, JobHandler jobhandler, final IProgressMonitor monitor, boolean replace) {
 		Project project = null;
 		try {
 			//			SearchEngine engine = SearchEnginesManager.getCQPSearchEngine();
@@ -269,15 +270,15 @@
 
 			//CHECK ZIPPED FILE
 			if (Load080BinaryCorpus.canLoad(zipFile)) {
-				project = Load080BinaryCorpus.loadBinaryCorpusArchive(zipFile, monitor);
+				project = Load080BinaryCorpus.loadBinaryCorpusArchive(zipFile, monitor, replace);
 			} else if (Load079BinaryCorpus.canLoad(zipFile)) {
-				project = Load079BinaryCorpus.loadBinaryCorpusArchive(zipFile, monitor);
+				project = Load079BinaryCorpus.loadBinaryCorpusArchive(zipFile, monitor, replace);
 			} else {
-				System.out.println(NLS.bind("Error: the {0} archive is not a TXM corpus.", zipFile));
+				Log.warning(NLS.bind("The {0} archive is not a TXM corpus.", zipFile));
 				return null;
 			}
 			if (project == null) {
-				System.out.println(NLS.bind("Error: could not load the {0} corpus.", zipFile));
+				Log.warning(NLS.bind("Failed to load the {0} corpus.", zipFile));
 				return null; 
 			}
 
@@ -317,14 +318,15 @@
 	/**
 	 * load the content of the file if its a directory containing at least the sub folders :
 	 * txm, html, data and registry.
+	 * @param replace 
 	 *
 	 * @param binCorpusDirectory the basedir
 	 * @return the base
 	 * @throws Exception the exception
 	 */
-	public static Project loadBinaryCorpusAsDirectory(File corpusDirectory, IProgressMonitor monitor) throws Exception {
+	public static Project loadBinaryCorpusAsDirectory(File corpusDirectory, IProgressMonitor monitor, boolean replace) throws Exception {
 		if (!(corpusDirectory.exists() && corpusDirectory.isDirectory())) {
-			Log.severe(NLS.bind(TXMUIMessages.failedToLoadCorpusP0, corpusDirectory.getAbsolutePath()));
+			Log.warning(NLS.bind(TXMUIMessages.failedToLoadCorpusP0, corpusDirectory.getAbsolutePath()));
 			System.out.println(NLS.bind(TXMUIMessages.failedToLoadCorpusP0, corpusDirectory.getAbsolutePath()));
 			return null; 
 		}
@@ -349,7 +351,7 @@
 		// test with project name
 		Project p = Toolbox.workspace.getProject(corpusDirectory.getName().toUpperCase().toUpperCase());
 		if (p != null) {
-			System.out.println(NLS.bind("Aborting loading of {0}. A corpus with the same name already exists.", corpusDirectory));
+			Log.warning(NLS.bind("Aborting loading of {0}. A corpus with the same name already exists.", corpusDirectory));
 			return null;
 		}
 
@@ -360,7 +362,7 @@
 			String mainCorpusName = mainCorpusDirs[0].getName();
 			p = Toolbox.workspace.getProject(mainCorpusName);
 			if (p != null) {
-				System.out.println(NLS.bind("Aborting loading of {0}. A corpus with the same {1} CQP MainCorpus name already exists.", corpusDirectory, mainCorpusName));
+				Log.warning(NLS.bind("Aborting loading of {0}. A corpus with the same {1} CQP MainCorpus name already exists.", corpusDirectory, mainCorpusName));
 				return null;
 			}
 		}
@@ -384,7 +386,7 @@
 			System.out.println(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM079Corpus, destDir));
 			project = Load079BinaryCorpus.loadBinaryCorpusAsDirectory(destDir, null);
 		} else {
-			System.out.println(NLS.bind("Error: {0} is not a binary corpus directory.", destDir));
+			Log.severe(NLS.bind("Error: {0} is not a binary corpus directory.", destDir));
 		}
 
 		if (!destDir.equals(corpusDirectory) && project == null) { // clean if necessary
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load080BinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load080BinaryCorpus.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/Load080BinaryCorpus.java	(revision 1616)
@@ -56,35 +56,45 @@
 	/**
 	 * load the content of the file if its a directory containing at least the sub folders :
 	 * txm, html, data and registry.
+	 * @param replace 
 	 *
 	 * @param binCorpusDirectory the zipFile
 	 * @return the base
 	 * @throws Exception the exception
 	 */
-	public static Project loadBinaryCorpusArchive(File zipFile, IProgressMonitor monitor) throws Exception {
+	public static Project loadBinaryCorpusArchive(File zipFile, IProgressMonitor monitor, boolean replace) throws Exception {
 		//ZIPPED FILE
 		if (monitor != null) monitor.beginTask(TXMUIMessages.loadingBinaryCorpus, 100);
 		if (monitor != null) monitor.subTask(TXMUIMessages.extractingBinaryCorpus);
 
+		if (!canLoad(zipFile)) {
+			Log.severe(NLS.bind(TXMUIMessages.binaryCorpusIsNotATXM080CorpusNoSettingsNorProjectFile, zipFile.getName()));
+			return null;
+		}
+		
 		String basedirname = Zip.getRoot(zipFile);
 
 		Project p = Toolbox.workspace.getProject(basedirname.toUpperCase());
 		if (p != null) {
-			System.out.println("Aborting loading of "+zipFile+". A corpus with the same name already exists.");
-			return null;
+			if (replace) {
+				p.delete();
+			} else {
+				System.out.println("Aborting loading of "+zipFile+". A corpus with the same name already exists.");
+				return null;
+			}
 		}
 		
 		File corpusDirectory = new File(Toolbox.workspace.getLocation(), basedirname);
 		if (corpusDirectory.exists()) {
-			System.out.println("Aborting loading of "+zipFile+". A directory with the same name already exists: "+corpusDirectory);
-			return null;
+			if (replace) {
+				DeleteDir.deleteDirectory(corpusDirectory);
+			} else {
+				System.out.println("Aborting loading of "+zipFile+". A directory with the same name already exists: "+corpusDirectory);
+				return null;
+			}
+			
 		}
 
-		if (!canLoad(zipFile)) {
-			Log.severe(NLS.bind(TXMUIMessages.binaryCorpusIsNotATXM080CorpusNoSettingsNorProjectFile, zipFile.getName()));
-			return null;
-		}
-
 		Log.info(NLS.bind(TXMUIMessages.loadingTheP0BinaryCorpusAsATXM080Corpus, zipFile.getName()));
 
 		try {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/ConvertCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/ConvertCorpus.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/workspace/ConvertCorpus.java	(revision 1616)
@@ -53,7 +53,7 @@
 						converter.start();
 						this.releaseSemaphore();
 
-						Project base = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(outdir, monitor);
+						Project base = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(outdir, monitor, false);
 						if (base == null) {
 							System.out.println(TXMUIMessages.corpusConversionFailed);
 							return Status.CANCEL_STATUS;
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1616)
@@ -264,7 +264,7 @@
 						if (txmHomeRestored) {
 							//createBackUpDirectory(monitor);
 
-							installCorporaFromSamplesDirectory(monitor);
+							installCorporaDirectory(monitor);
 							//							this.syncExec(new Runnable() {
 							//								@Override
 							//								public void run() {
@@ -842,10 +842,10 @@
 	}
 
 	/**
-	 * Copy sample corpora in TXM corpora directory
+	 * Install the sample corpora and previous TXM version corpora in TXM corpora directory
 	 * @param monitor
 	 */
-	private void installCorporaFromSamplesDirectory(IProgressMonitor monitor) {
+	private void installCorporaDirectory(IProgressMonitor monitor) {
 
 		String installdirpath = Toolbox.getInstallDirectory();
 		File sampleCorporaDirectory = new File(installdirpath, "samples"); //$NON-NLS-1$
@@ -856,170 +856,49 @@
 		corporaDir = new File(txmhomedir, "corpora"); //$NON-NLS-1$
 		corporaDir.mkdir();
 
-		// load corpora from the install directory
-		if (sampleCorporaDirectory.exists()) { //$NON-NLS-1$
-			System.out.println(TXMUIMessages.installingSampleCorpus);
-			LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(sampleCorporaDirectory);
-			//			Log.info(TXMUIMessages.ApplicationWorkbenchAdvisor_11);
-			//			monitor.setTaskName(TXMUIMessages.ApplicationWorkbenchAdvisor_11);
-			//			//File corporaDir = new File(txmhomedir.getAbsolutePath(), "corpora"); //$NON-NLS-1$
-			//			
-			//
-			//			File[] sampleCorpusFiles = sampleCorporaDirectory.listFiles(IOUtils.FILTER_HIDDEN); //$NON-NLS-1$
-			//
-			//			if (sampleCorpusFiles != null) for (File zipFile : sampleCorpusFiles) {
-			//				try {
-			//					String filename = zipFile.getName();
-			//					File basedir;
-			//					String basedirname;
-			//					if (filename.endsWith(".txm") || filename.endsWith(".zip")) { //$NON-NLS-1$ //$NON-NLS-2$
-			//						if (!zipFile.canRead()) {
-			//							System.out.println(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_45, zipFile));
-			//							continue; // go to next binary file
-			//						}
-			//
-			//						//build binary dir path
-			//						basedirname = Zip.getRoot(zipFile);
-			//						basedir = new File(corporaDir, basedirname);
-			//
-			//						try {
-			//							Zip.decompress(zipFile.getAbsolutePath(), corporaDir.getAbsolutePath(), false);
-			//						} catch (IOException e) {
-			//							System.out.println(NLS.bind(TXMUIMessages.couldNotUnzipBinaryCorpusColon, e));
-			//						}
-			//					} else if (zipFile.isDirectory()) {
-			//						//basedir = zipFile;
-			////						basedir = new File(corporaDir, zipFile.getName().toUpperCase());
-			////						if (basedir.exists()) {
-			////							System.out.println("Updating "+basedir.getName()+" corpus from TXM sample directory corpus.");
-			////							DeleteDir.deleteDirectory(basedir);
-			////						}
-			////						FileCopy.copyFiles(zipFile, basedir); // copy the sample corpus to load
-			//					} else {
-			//						System.out.println(NLS.bind(TXMUIMessages.thisFileIsNotATXMFileColonP0, zipFile));
-			//						System.out.println(TXMUIMessages.aBinaryCorpusIsATXMFileExtensionTxmOrZip);
-			//						continue;
-			//					}
-			//					
-			////					Project project = LoadBinaryCorpus.loadBinaryCorpusAsDirectory(basedir, monitor);
-			////					if (project != null) {
-			////						basenames.add(project.getName());
-			////						sampleCorpusLoaded.add(project.getName());
-			////					}
-			//					
-			//				} catch (Exception e) {
-			//					System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_51+zipFile);
-			//					org.txm.utils.logger.Log.printStackTrace(e);
-			//				}
-			//			}
+		File previousCorporaDirectory = new File(System.getProperty("user.home"), "TXM/corpora");
+
+		
+		
+		// TXM-0.8.0 previous installation corpora
+		if (corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER).length > 0) { // not a new install, restore previous corpora
+			Log.info(NLS.bind(TXMUIMessages.installingPreviousCorpusFromP0, corporaDir));
+			JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(corporaDir, false, true);
+			try {
+				job.join();
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
 		}
+		
+		// TXM previous installation corpora
+		if (previousCorporaDirectory.exists()) { // new installation (empty corpora directory)
+			Log.info(NLS.bind(TXMUIMessages.installingPreviousCorpusFromP0, previousCorporaDirectory));
+			JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(previousCorporaDirectory, false, false);
+			try {
+				job.join();
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
 
-		//		for (File projectDir : corporaDir.listFiles(IOUtils.FILTER_HIDDEN)) { // load sample corpus and previous corpus as well
-		//			if (projectDir.isDirectory()) {
-		//				Project project;
-		//				try {
-		//					
-		//				} catch (Exception e) {
-		//					// TODO Auto-generated catch block
-		//					e.printStackTrace();
-		//				}
-		//			}
-		//		}
+		// load TXM-0.8.0 sample corpora (from the install directory)
+		if (sampleCorporaDirectory.exists()) {
 
-		// after loading sample corpora, restore older corpus
-		//		if (backup.exists()) {
-		//			System.out.print(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_53, backup));
-		//			monitor.setTaskName(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_53, backup));
-		//
-		//			File[] corpusDirs = backup.listFiles(IOUtils.FILTER_HIDDEN);
-		//
-		//			if (corpusDirs != null) {
-		//
-		//				for (File corpusDir : corpusDirs) { // fix corpus name lowercase letters
-		//					if (!corpusDir.getName().equals(corpusDir.getName().toUpperCase())) {
-		//						File upperCasedCorpusDir = new File(corpusDir.getParentFile(), corpusDir.getName().toUpperCase());
-		//						if (!upperCasedCorpusDir.exists()) {
-		//							corpusDir.renameTo(upperCasedCorpusDir);
-		//						}
-		//					}
-		//				}
-		//				corpusDirs = backup.listFiles(IOUtils.FILTER_HIDDEN);
-		//
-		//				ArrayList<String> notMoved = new ArrayList<String>();
-		//				ArrayList<File> broken = new ArrayList<File>();
-		//
-		//				for (File corpusDir : corpusDirs) {
-		//					if (!corpusDir.isDirectory()) continue; // ignore
-		//					System.out.print("."); //$NON-NLS-1$
-		//					File outdir = new File(corporaDir, corpusDir.getName());
-		//					if (outdir.exists()) {
-		//						//System.out.println("This setup provides a new version of the "+corpusDir.getName()+" sample corpus. Skipping the backup of "+corpusDir);
-		//						notMoved.add(corpusDir.getName());
-		//						continue;
-		//					}
-		//
-		//					try {
-		//						Convert5To6 converter = new Convert5To6(corpusDir, outdir);
-		//						if (converter.is5(true)) {
-		//							if (!converter.start()) {
-		//								System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_22+corpusDir+TXMUIMessages.ApplicationWorkbenchAdvisor_23);
-		//								System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_54+corpusDir+TXMUIMessages.ApplicationWorkbenchAdvisor_55);
-		//								System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_56);
-		//								broken.add(corpusDir);
-		//							} else {
-		//								//System.out.println(Messages.ApplicationWorkbenchAdvisor_57+outdir);
-		//								Base base = LoadBinaryCorpus.loadBinaryCorpus(outdir);
-		//								basenames.add(base.getName());
-		//							}
-		//						} else {
-		//							if (Convert5To6.is6(corpusDir)) {
-		//								if (corpusDir.renameTo(outdir)) {
-		//									Base base = LoadBinaryCorpus.loadBinaryCorpus(outdir);
-		//									if (base == null) {
-		//										System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_58+outdir);
-		//										System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_59+corpusDir);
-		//										outdir.renameTo(corpusDir);
-		//										broken.add(corpusDir);
-		//									} else {
-		//										basenames.add(base.getName());
-		//									}
-		//								} else {
-		//									System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_24+corpusDir+TXMUIMessages.ApplicationWorkbenchAdvisor_26+outdir);
-		//									broken.add(corpusDir);
-		//								}
-		//							} else {
-		//								System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_60+corpusDir+TXMUIMessages.ApplicationWorkbenchAdvisor_61);
-		//								broken.add(corpusDir);
-		//							}
-		//						}
-		//					} catch (Throwable e) {
-		//						System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_59+corpusDir);
-		//						System.out.println(TXMUIMessages.ERROR+e);
-		//						outdir.renameTo(corpusDir);
-		//					}
-		//				}
-		//				System.out.println();
-		//				if (sampleCorpusLoaded.size() > 0) {
-		//					if (sampleCorpusLoaded.size() == 1) {
-		//						System.out.println(TXMUIMessages.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_43_single, StringUtils.join(sampleCorpusLoaded, ", "))); //$NON-NLS-1$
-		//					} else {
-		//						System.out.println(TXMUIMessages.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_43, StringUtils.join(sampleCorpusLoaded, ", "))); //$NON-NLS-1$
-		//					}
-		//				}
-		//
-		//				if (broken.size() > 0) {
-		//					errorbackup.mkdir();
-		//					System.out.println(TXMUIMessages.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_48, StringUtils.join(broken, ", "), errorbackup)); //$NON-NLS-1$
-		//					for(File corpusDir : broken) {
-		//						if (corpusDir.exists())
-		//							corpusDir.renameTo(new File(errorbackup, corpusDir.getName()));
-		//					}
-		//				}
-		//			}
-		//		}
+			Log.info(TXMUIMessages.installingSampleCorpus);
+
+			JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(sampleCorporaDirectory, false, true);
+			try {
+				job.join();
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
 	}
 
-
 	/**
 	 * Executes the specified Groovy script file.
 	 * @param script
@@ -1035,8 +914,8 @@
 			Log.printStackTrace(e);
 		}
 	}
-	
-	
+
+
 	/**
 	 * Called just before the Toolbox is initialized
 	 */
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages_fr.properties	(revision 1616)
@@ -974,4 +974,6 @@
 
 zoomToSelectionColonCtrlPlusLeftMousePlusdrag = \	Zoomer sur la sélection : Ctrl + Clic Gauche + Glisser\n
 
-P0CorpusLoaded={0} corpus chargées.
\ No newline at end of file
+P0CorpusLoaded={0} corpus chargées.
+
+installingPreviousCorpusFromP0=Installation des corpus précédents depuis le répertoire {0}.
\ No newline at end of file
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/TXMUIMessages.java	(revision 1616)
@@ -8,7 +8,7 @@
 	
 	private static final String BUNDLE_NAME = "org.txm.rcp.messages.messages"; //$NON-NLS-1$
 
-	public static final String P0CorpusLoaded = null;
+	public static String P0CorpusLoaded;
 	
 	public static String EMPTY; 
 	public static String Explorer_4;
@@ -506,10 +506,10 @@
 
 	public static String theP0CorpusWillBeCreatedFromTheP1Directory;
 
-	public static String theP1P0CorpusWillBeReplaced; 
+	public static String theP1P0CorpusWillBeReplaced;
 
+	public static String installingPreviousCorpusFromP0; 
 
-	
 	static {
 		// initialize resource bundle
 		Utf8NLS.initializeMessages(BUNDLE_NAME, TXMUIMessages.class);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 1615)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/messages/messages.properties	(revision 1616)
@@ -976,4 +976,6 @@
 
 theP1P0CorpusWillBeReplaced=The {0} ({1}) corpus will be replaced.
 
-P0CorpusLoaded={0} corpus loaded.
\ No newline at end of file
+P0CorpusLoaded={0} corpus loaded.
+
+installingPreviousCorpusFromP0=Installing previous corpus from the {0} corpora directory.
\ No newline at end of file
Index: tmp/org.txm.utils/src/org/txm/utils/logger/Log.java
===================================================================
--- tmp/org.txm.utils/src/org/txm/utils/logger/Log.java	(revision 1615)
+++ tmp/org.txm.utils/src/org/txm/utils/logger/Log.java	(revision 1616)
@@ -50,7 +50,7 @@
 public class Log {
 	/** The class id. */
 	public static final String id = "org.txm.utils.logger.Log";
-	
+
 	/** The txm Logger. */
 	protected static TXMLogger txm;
 
@@ -59,13 +59,13 @@
 
 	/** The CONSOLE flags indicates if messages with level < INFO are printed in console*/
 	public static boolean CONSOLE = false;
-	
+
 	/** The caller information. */
 	protected static String sourceMethodName;
 	protected static String sourceClassName;	
 	/** The logger frame list. */
 	protected static List<String> frameList;
-	
+
 	static {
 		//System.out.println("INIT TXMLOGGER");
 		txm = new TXMLogger("TXMFileLogger", null);
@@ -93,21 +93,21 @@
 		// System.out.println("set print in file: "+b);
 		String filename = null;
 		if (b) {
-				try {
-					SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$
-					
-					filename = System.getProperty("java.io.tmpdir")+"/TXM-" + f.format(new Date()) + ".log"; //$NON-NLS-1$ //$NON-NLS-2$
-					
-					fh = new FileHandler(filename, false);
-					System.out.println(UtilsCoreMessages.Log_3 + new File(filename).getAbsolutePath());
-					fh.setFormatter(new SimpleFormatter());
-					fh.setEncoding("UTF-8"); //$NON-NLS-1$
-					txm.addHandler(fh);
-				} catch (SecurityException e) {
-					printStackTrace(e);
-				} catch (IOException e) {
-					printStackTrace(e);
-				}
+			try {
+				SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); //$NON-NLS-1$
+
+				filename = System.getProperty("java.io.tmpdir")+"/TXM-" + f.format(new Date()) + ".log"; //$NON-NLS-1$ //$NON-NLS-2$
+
+				fh = new FileHandler(filename, false);
+				System.out.println(UtilsCoreMessages.Log_3 + new File(filename).getAbsolutePath());
+				fh.setFormatter(new SimpleFormatter());
+				fh.setEncoding("UTF-8"); //$NON-NLS-1$
+				txm.addHandler(fh);
+			} catch (SecurityException e) {
+				printStackTrace(e);
+			} catch (IOException e) {
+				printStackTrace(e);
+			}
 		} else {
 			txm.removeHandler(fh);
 		}
@@ -124,10 +124,10 @@
 		if (b) {
 			if (txm.getHandlers().length == 0 && logfiledir.exists()) {
 				try {
-					
+
 					fh = new FileHandler(
-									logfiledir.getAbsolutePath()
-											+ "/TXM-" + f.format(new Date()) + ".log", false); //$NON-NLS-1$ //$NON-NLS-2$
+							logfiledir.getAbsolutePath()
+							+ "/TXM-" + f.format(new Date()) + ".log", false); //$NON-NLS-1$ //$NON-NLS-2$
 					System.out.println(UtilsCoreMessages.Log_5
 							+ logfiledir.getAbsolutePath()
 							+ "TXM-" + f.format(new Date()) + ".log"); //$NON-NLS-2$ //$NON-NLS-1$
@@ -142,11 +142,11 @@
 			txm.removeHandler(fh);
 		}
 	}
-	
+
 	public static void addHandler(Handler handler) {
 		txm.addHandler(handler);
 	}
-	
+
 	public static void removeHandler(Handler handler) {
 		txm.addHandler(handler);
 	}
@@ -167,7 +167,7 @@
 				message.append(t.getFileName()
 						+ ": " + t.getMethodName() + ", l." //$NON-NLS-1$ //$NON-NLS-2$
 						+ t.getLineNumber() + " -> " + e.toString()); //$NON-NLS-1$
-		
+
 				if ("true".equals(log_stacktrace_boolean)) {
 					message.append(UtilsCoreMessages.Log_8);
 					for (StackTraceElement se : e.getStackTrace())
@@ -190,7 +190,7 @@
 	public static void setPrintInConsole(boolean b) {
 		CONSOLE = b;
 	}
-	
+
 	/**
 	 * Sets the prints the in console.
 	 * 
@@ -200,7 +200,7 @@
 		return txm.getUseParentHandlers();
 	}
 
-	
+
 	/**
 	 * Log a severe message using the default flag
 	 * 
@@ -217,18 +217,46 @@
 	 * @param message
 	 */
 	public static void severe(String message) {
+		
 		if (Level.SEVERE.intValue() >= txm.getLevel().intValue()) {
 			System.out.println(message);
-			System.out.println("STACKTRACE:");
+
+			StackTraceElement[] st = Thread.currentThread().getStackTrace();
+			int stL = 0;
+			int maxClassNameLength = 0;
+			int maxMethodNameLength = 0;
+
+			for (StackTraceElement t : st) {            
+				String cn = t.getClassName();
+				if (cn.startsWith("org.txm.") && !cn.startsWith(Log.class.getName())) {
+					int cns = cn.length();
+					if (cns > maxClassNameLength) maxClassNameLength = cns;
+					int mns = t.getMethodName().length();
+					if (mns > maxMethodNameLength) maxMethodNameLength = mns;
+					stL++;
+				}
+			}
+
+			int stLs = (int)Math.log10(stL)+1;
+			String format = String.format("[%%%dd]  %%%ds.%%%ds  %%s, %%s", stLs, maxClassNameLength, maxMethodNameLength);
+
+			System.out.println("Stacktrace: ");
 			int n = 1;
-			for (StackTraceElement t : Thread.currentThread().getStackTrace()) {
+			for (StackTraceElement t : st) {            
 				if (t.getClassName().startsWith("org.txm.") && !t.getClassName().startsWith(Log.class.getName())) {
-					System.out.println(String.format("[%2d]\t",n++)+t);
-					//System.out.println(""+(n++)+"\t"+t);
+					System.out.println(String.format(format, n++, t.getClassName(), t.getMethodName(), t.getFileName(), t.getLineNumber()));
 				}
 			}
+
+			//			System.out.println("Stacktrace: ");
+			//			int n = 1;
+			//			for (StackTraceElement t : Thread.currentThread().getStackTrace()) {
+			//				if (t.getClassName().startsWith("org.txm.") && !t.getClassName().startsWith(Log.class.getName())) {
+			//					System.out.println(String.format("[%2d]\t",n++)+t);
+			//				}
+			//			}
 		}
-		
+
 		txm.severe(message);
 	}
 
@@ -250,19 +278,19 @@
 	public static void warning(String message) {
 		if (Level.WARNING.intValue() >= txm.getLevel().intValue()) {
 			System.out.println(message);
-			System.out.print("AT: ");
-			int n = 1;
-			for (StackTraceElement t : Thread.currentThread().getStackTrace()) {
-				if (t.getClassName().startsWith("org.txm.") && !t.getClassName().startsWith(Log.class.getName())) {
-					System.out.println(t);
-					break;
-				}
-			}
+			//			System.out.print("AT: ");
+			//			int n = 1;
+			//			for (StackTraceElement t : Thread.currentThread().getStackTrace()) {
+			//				if (t.getClassName().startsWith("org.txm.") && !t.getClassName().startsWith(Log.class.getName())) {
+			//					System.out.println(t);
+			//					break;
+			//				}
+			//			}
 		}
 		txm.warning(message);
 	}
 
-	
+
 	/**
 	 * Log an info message using the default flag
 	 * 
@@ -272,7 +300,7 @@
 		info(t.getLocalizedMessage());
 		printStackTrace(t);
 	}
-	
+
 	/**
 	 * Log an info message
 	 * 
@@ -286,7 +314,7 @@
 		txm.info(message);
 	}
 
-	
+
 	/**
 	 * Log an info message
 	 * 
@@ -299,7 +327,7 @@
 		}
 		txm.finest(message);
 	}
-	
+
 	/**
 	 * Log an info message
 	 * 
@@ -312,7 +340,7 @@
 		}
 		txm.fine(message);
 	}
-	
+
 	/**
 	 * Log an info message
 	 * 
@@ -326,9 +354,9 @@
 		txm.finer(message);
 	}
 
-	
+
 	public static boolean log_stacktrace_boolean = false;
-	
+
 	/**
 	 * Log a stacktrace if the 'Log.log_stacktrace_boolean' is set to true
 	 * 
@@ -343,13 +371,13 @@
 	public static Level getLevel() {
 		return txm.getLevel();
 	}
-	
+
 	public static boolean isPrintingErrors() {
 		if (txm == null) return false;
 		return txm.getLevel().intValue() <= Level.INFO.intValue();
 	}
-	
 
+
 	/**
 	 * Method from LogRecord to determine if a frame is a logger frame
 	 * 
