Mercurial > hg4j
comparison 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 |
comparison
equal
deleted
inserted
replaced
512:10ca3ede8367 | 513:a41d955dc360 |
---|---|
309 final Lifecycle lifecycle = lifecycleSetUp(inspector); | 309 final Lifecycle lifecycle = lifecycleSetUp(inspector); |
310 DataAccess da = null; | 310 DataAccess da = null; |
311 try { | 311 try { |
312 da = getDataStream(); | 312 da = getDataStream(); |
313 internalInspectChangelog(da, inspector); | 313 internalInspectChangelog(da, inspector); |
314 if (flowControl.isStopped()) { | |
315 return; | |
316 } | |
314 internalInspectManifest(da, inspector); | 317 internalInspectManifest(da, inspector); |
318 if (flowControl.isStopped()) { | |
319 return; | |
320 } | |
315 internalInspectFiles(da, inspector); | 321 internalInspectFiles(da, inspector); |
316 } catch (IOException ex) { | 322 } catch (IOException ex) { |
317 throw new HgInvalidFileException("Bundle.inspectAll failed", ex, bundleFile); | 323 throw new HgInvalidFileException("Bundle.inspectAll failed", ex, bundleFile); |
318 } finally { | 324 } finally { |
319 if (da != null) { | 325 if (da != null) { |
351 private void internalInspectChangelog(DataAccess da, Inspector inspector) throws IOException { | 357 private void internalInspectChangelog(DataAccess da, Inspector inspector) throws IOException { |
352 if (da.isEmpty()) { | 358 if (da.isEmpty()) { |
353 return; | 359 return; |
354 } | 360 } |
355 inspector.changelogStart(); | 361 inspector.changelogStart(); |
362 if (flowControl.isStopped()) { | |
363 return; | |
364 } | |
356 readGroup(da, inspector); | 365 readGroup(da, inspector); |
366 if (flowControl.isStopped()) { | |
367 return; | |
368 } | |
357 inspector.changelogEnd(); | 369 inspector.changelogEnd(); |
358 } | 370 } |
359 | 371 |
360 private void internalInspectManifest(DataAccess da, Inspector inspector) throws IOException { | 372 private void internalInspectManifest(DataAccess da, Inspector inspector) throws IOException { |
361 if (da.isEmpty()) { | 373 if (da.isEmpty()) { |
362 return; | 374 return; |
363 } | 375 } |
364 inspector.manifestStart(); | 376 inspector.manifestStart(); |
377 if (flowControl.isStopped()) { | |
378 return; | |
379 } | |
365 readGroup(da, inspector); | 380 readGroup(da, inspector); |
381 if (flowControl.isStopped()) { | |
382 return; | |
383 } | |
366 inspector.manifestEnd(); | 384 inspector.manifestEnd(); |
367 } | 385 } |
368 | 386 |
369 private void internalInspectFiles(DataAccess da, Inspector inspector) throws IOException { | 387 private void internalInspectFiles(DataAccess da, Inspector inspector) throws IOException { |
370 while (!da.isEmpty()) { | 388 while (!da.isEmpty()) { |
374 } | 392 } |
375 byte[] fnameBuf = new byte[fnameLen - 4]; | 393 byte[] fnameBuf = new byte[fnameLen - 4]; |
376 da.readBytes(fnameBuf, 0, fnameBuf.length); | 394 da.readBytes(fnameBuf, 0, fnameBuf.length); |
377 String name = new String(fnameBuf); | 395 String name = new String(fnameBuf); |
378 inspector.fileStart(name); | 396 inspector.fileStart(name); |
397 if (flowControl.isStopped()) { | |
398 return; | |
399 } | |
379 readGroup(da, inspector); | 400 readGroup(da, inspector); |
401 if (flowControl.isStopped()) { | |
402 return; | |
403 } | |
380 inspector.fileEnd(name); | 404 inspector.fileEnd(name); |
381 } | 405 } |
382 } | 406 } |
383 | 407 |
384 private static void readGroup(DataAccess da, Inspector inspector) throws IOException { | 408 private static void readGroup(DataAccess da, Inspector inspector) throws IOException { |