Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgStatusCollector.java @ 354:5f9073eabf06
Propagate errors with exceptions up to a end client
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 01 Dec 2011 05:21:40 +0100 |
parents | 678e326fd27c |
children | 150500515714 |
comparison
equal
deleted
inserted
replaced
353:0f3687e79f5a | 354:5f9073eabf06 |
---|---|
27 import java.util.Map; | 27 import java.util.Map; |
28 import java.util.TreeSet; | 28 import java.util.TreeSet; |
29 | 29 |
30 import org.tmatesoft.hg.core.HgBadStateException; | 30 import org.tmatesoft.hg.core.HgBadStateException; |
31 import org.tmatesoft.hg.core.HgDataStreamException; | 31 import org.tmatesoft.hg.core.HgDataStreamException; |
32 import org.tmatesoft.hg.core.HgException; | |
33 import org.tmatesoft.hg.core.HgInvalidControlFileException; | |
32 import org.tmatesoft.hg.core.Nodeid; | 34 import org.tmatesoft.hg.core.Nodeid; |
33 import org.tmatesoft.hg.internal.IntMap; | 35 import org.tmatesoft.hg.internal.IntMap; |
34 import org.tmatesoft.hg.internal.ManifestRevision; | 36 import org.tmatesoft.hg.internal.ManifestRevision; |
35 import org.tmatesoft.hg.internal.Pool; | 37 import org.tmatesoft.hg.internal.Pool; |
36 import org.tmatesoft.hg.util.Path; | 38 import org.tmatesoft.hg.util.Path; |
266 if (copyOrigin != null) { | 268 if (copyOrigin != null) { |
267 inspector.copied(getPathPool().path(copyOrigin) /*pipe through pool, just in case*/, copyTarget); | 269 inspector.copied(getPathPool().path(copyOrigin) /*pipe through pool, just in case*/, copyTarget); |
268 } else { | 270 } else { |
269 inspector.added(copyTarget); | 271 inspector.added(copyTarget); |
270 } | 272 } |
271 } catch (HgDataStreamException ex) { | 273 } catch (HgException ex) { |
272 ex.printStackTrace(); | 274 ex.printStackTrace(); |
273 // FIXME perhaps, shall record this exception to dedicated mediator and continue | 275 // FIXME perhaps, shall record this exception to dedicated mediator and continue |
274 // for a single file not to be irresolvable obstacle for a status operation | 276 // for a single file not to be irresolvable obstacle for a status operation |
275 } | 277 } |
276 } | 278 } |
286 Record rv = new Record(); | 288 Record rv = new Record(); |
287 walk(rev1, rev2, rv); | 289 walk(rev1, rev2, rv); |
288 return rv; | 290 return rv; |
289 } | 291 } |
290 | 292 |
291 /*package-local*/static Path getOriginIfCopy(HgRepository hgRepo, Path fname, Collection<Path> originals, int originalChangelogRevision) throws HgDataStreamException { | 293 /*package-local*/static Path getOriginIfCopy(HgRepository hgRepo, Path fname, Collection<Path> originals, int originalChangelogRevision) throws HgDataStreamException, HgInvalidControlFileException { |
292 HgDataFile df = hgRepo.getFileNode(fname); | 294 HgDataFile df = hgRepo.getFileNode(fname); |
293 if (!df.exists()) { | 295 if (!df.exists()) { |
294 String msg = String.format("Didn't find file '%s' in the repo. Perhaps, bad storage name conversion?", fname); | 296 String msg = String.format("Didn't find file '%s' in the repo. Perhaps, bad storage name conversion?", fname); |
295 throw new HgDataStreamException(fname, msg, null).setRevisionNumber(originalChangelogRevision); | 297 throw new HgDataStreamException(fname, msg, null).setRevisionNumber(originalChangelogRevision); |
296 } | 298 } |