diff src/org/tmatesoft/hg/repo/HgBundle.java @ 513:a41d955dc360

Issue 39: HgCloneCommand doesn't use CancelSupport/ProgressSupport handlers
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Mon, 17 Dec 2012 15:01:57 +0100
parents 10ca3ede8367
children 2f9ed6bcefa2
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgBundle.java	Fri Dec 14 20:10:15 2012 +0100
+++ b/src/org/tmatesoft/hg/repo/HgBundle.java	Mon Dec 17 15:01:57 2012 +0100
@@ -311,7 +311,13 @@
 		try {
 			da = getDataStream();
 			internalInspectChangelog(da, inspector);
+			if (flowControl.isStopped()) {
+				return;
+			}
 			internalInspectManifest(da, inspector);
+			if (flowControl.isStopped()) {
+				return;
+			}
 			internalInspectFiles(da, inspector);
 		} catch (IOException ex) {
 			throw new HgInvalidFileException("Bundle.inspectAll failed", ex, bundleFile);
@@ -353,7 +359,13 @@
 			return;
 		}
 		inspector.changelogStart();
+		if (flowControl.isStopped()) {
+			return;
+		}
 		readGroup(da, inspector);
+		if (flowControl.isStopped()) {
+			return;
+		}
 		inspector.changelogEnd();
 	}
 
@@ -362,7 +374,13 @@
 			return;
 		}
 		inspector.manifestStart();
+		if (flowControl.isStopped()) {
+			return;
+		}
 		readGroup(da, inspector);
+		if (flowControl.isStopped()) {
+			return;
+		}
 		inspector.manifestEnd();
 	}
 
@@ -376,7 +394,13 @@
 			da.readBytes(fnameBuf, 0, fnameBuf.length);
 			String name = new String(fnameBuf);
 			inspector.fileStart(name);
+			if (flowControl.isStopped()) {
+				return;
+			}
 			readGroup(da, inspector);
+			if (flowControl.isStopped()) {
+				return;
+			}
 			inspector.fileEnd(name);
 		}
 	}