From bf68143bda275e31dd22ee2268621bb0e0541a72 Mon Sep 17 00:00:00 2001 From: James Moger Date: Mon, 8 Sep 2014 16:15:30 -0400 Subject: [PATCH] Fix potential NPE in TicketListPanel due to missing repository --- .../wicket/panels/TicketListPanel.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java b/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java index 1ca483ce..c7079c85 100644 --- a/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java @@ -64,11 +64,10 @@ public class TicketListPanel extends BasePanel { @Override protected void populateItem(Item item) { final QueryResult ticket = item.getModelObject(); - final RepositoryModel repository = app().repositories().getRepositoryModel(ticket.repository); if (showSwatch) { // set repository color - String color = StringUtils.getColor(StringUtils.stripDotGit(repository.name)); + String color = StringUtils.getColor(StringUtils.stripDotGit(ticket.repository)); WicketUtils.setCssStyle(item, MessageFormat.format("border-left: 2px solid {0};", color)); } @@ -121,13 +120,24 @@ public class TicketListPanel extends BasePanel { @Override public void populateItem(final Item labelItem) { - BugtraqProcessor btp = new BugtraqProcessor(app().settings()); - Repository db = app().repositories().getRepository(repository.name); - String content = btp.processText(db, repository.name, labelItem.getModelObject()); - db.close(); - Label label = new Label("label", content); - label.setEscapeModelStrings(false); - TicketLabel tLabel = app().tickets().getLabel(repository, labelItem.getModelObject()); + RepositoryModel repository = app().repositories().getRepositoryModel(ticket.repository); + Label label; + TicketLabel tLabel; + if (repository == null) { + label = new Label("label", labelItem.getModelObject()); + tLabel = new TicketLabel(labelItem.getModelObject()); + } else { + Repository db = app().repositories().getRepository(repository.name); + BugtraqProcessor btp = new BugtraqProcessor(app().settings()); + String content = btp.processText(db, repository.name, labelItem.getModelObject()); + db.close(); + + label = new Label("label", content); + label.setEscapeModelStrings(false); + + tLabel = app().tickets().getLabel(repository, labelItem.getModelObject()); + } + String background = MessageFormat.format("background-color:{0};", tLabel.color); label.add(new SimpleAttributeModifier("style", background)); labelItem.add(label); -- 2.39.5