From d3dfcda35c2232ff2e377778a3d23640e7f6a093 Mon Sep 17 00:00:00 2001 From: James Moger Date: Fri, 14 Sep 2012 14:22:36 -0400 Subject: [PATCH] Fixed null pointer in commit page due to changes in submodule link (issue 132) --- docs/04_releases.mkd | 1 + src/com/gitblit/utils/JGitUtils.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd index 0ef571ce..2ea0e23d 100644 --- a/docs/04_releases.mkd +++ b/docs/04_releases.mkd @@ -11,6 +11,7 @@ If you are updating from an earlier release AND you have indexed branches with t #### fixes +- Fixed bug in commit page where changes to a submodule threw a null pointer exception (issue 132) - Fixed bug in the diff view for filenames that have non-ASCII characters (issue 128) #### additions diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java index a78a7716..c5cd1c35 100644 --- a/src/com/gitblit/utils/JGitUtils.java +++ b/src/com/gitblit/utils/JGitUtils.java @@ -745,17 +745,22 @@ public class JGitUtils { df.setDetectRenames(true); List diffs = df.scan(parent.getTree(), commit.getTree()); for (DiffEntry diff : diffs) { + String objectId = null; + if (FileMode.GITLINK.equals(diff.getNewMode())) { + objectId = diff.getNewId().name(); + } + if (diff.getChangeType().equals(ChangeType.DELETE)) { list.add(new PathChangeModel(diff.getOldPath(), diff.getOldPath(), 0, diff - .getNewMode().getBits(), null, commit.getId().getName(), diff + .getNewMode().getBits(), objectId, commit.getId().getName(), diff .getChangeType())); } else if (diff.getChangeType().equals(ChangeType.RENAME)) { list.add(new PathChangeModel(diff.getOldPath(), diff.getNewPath(), 0, diff - .getNewMode().getBits(), null, commit.getId().getName(), diff + .getNewMode().getBits(), objectId, commit.getId().getName(), diff .getChangeType())); } else { list.add(new PathChangeModel(diff.getNewPath(), diff.getNewPath(), 0, diff - .getNewMode().getBits(), null, commit.getId().getName(), diff + .getNewMode().getBits(), objectId, commit.getId().getName(), diff .getChangeType())); } } -- 2.39.5