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 { |
