Program: 175825
Project: 175825
Buggy source:
private void selected(PlanSkeleton skel,Node house,SuperFace sf,SuperEdge se){
  JPanel ui=new JPanel();
  ui.setLayout(new ListDownLayout());
  JButton fac=new JButton("String_Node_Str");
  fac.addActionListener(e -> editFacade(skel,sf,se));
  ui.add(fac);
  JButton proc=new JButton("String_Node_Str");
  proc.addActionListener(e -> cgaFacade(skel,sf,se));
  ui.add(proc);
  JButton camp=new JButton("String_Node_Str");
  camp.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      closeSitePlan();
      Plot.closeLast();
      for (      HalfEdge he : sf) {
        SuperEdge ee=(SuperEdge)he;
        if (ee.toEdit != null)         ee.toEdit.app.appMode=AppMode.Off;
      }
      siteplan=new Siteplan(skel.plan,false){
        public void show(        Output output,        Skeleton threadKey){
          super.show(output,threadKey);
          tweed.enqueue(new Runnable(){
            @Override public void run(){
              removeGeometryFor(sf);
              tweed.frame.setGenUI(null);
              sf.skel=(PlanSkeleton)threadKey;
              sf.skel.output.addNonSkeletonSharedEdges(new RoofTag(Colourz.toF4(sf.mr.app.color)));
              sf.mr.setOutline(sf.skel.output);
              setSkel((PlanSkeleton)threadKey,sf);
            }
          }
);
        }
        public void addedBar(        Bar bar){
          SETag oldTag=(SETag)bar.tags.iterator().next();
          bar.tags.clear();
          SuperEdge se=new SuperEdge(bar.start,bar.end,null);
          SETag tag=new SETag(se);
          tag.color=Rainbow.random();
          tag.name=Math.random() + "String_Node_Str";
          bar.tags.add(tag);
          List<Point2d> defpts=new ArrayList<>();
          defpts.add(new Point2d(0,0));
          defpts.add(new Point2d(0,-10));
          defpts.add(new Point2d(5,-15));
          Profile profile=new Profile(defpts);
          tagWalls(sf,profile,se,bar.start,bar.end);
          plan.addLoop(profile.points.get(0),plan.root,profile);
          plan.profiles.put(bar,profile);
        }
      }
;
      siteplan.setVisible(true);
      siteplan.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
  }
);
  ui.add(camp);
  JButton tex=new JButton("String_Node_Str");
  tex.addActionListener(x -> {
    tweed.setTool(new TextureTool(tweed));
    SkelGen.this.textureSelected(skel,house,sf,se,se.toEdit);
  }
);
  ui.add(tex);
  JButton remove=new JButton("String_Node_Str");
  remove.addActionListener(e -> {
    block.faces.remove(sf);
    calculateOnJmeThread();
  }
);
  ui.add(remove);
  tweed.frame.setGenUI(ui);
}

Fixed version (ground truth):
private void selected(PlanSkeleton skel,Node house,SuperFace sf,SuperEdge se){
  JPanel ui=new JPanel();
  ui.setLayout(new ListDownLayout());
  JButton fac=new JButton("String_Node_Str");
  fac.addActionListener(e -> editFacade(skel,sf,se));
  ui.add(fac);
  JButton proc=new JButton("String_Node_Str");
  proc.addActionListener(e -> cgaFacade(skel,sf,se));
  ui.add(proc);
  JButton camp=new JButton("String_Node_Str");
  camp.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      closeSitePlan();
      Plot.closeLast();
      for (      HalfEdge he : sf) {
        SuperEdge ee=(SuperEdge)he;
        if (ee.toEdit != null)         ee.toEdit.app.appMode=AppMode.Off;
      }
      siteplan=new Siteplan(skel.plan,false){
        public void show(        Output output,        Skeleton threadKey){
          super.show(output,threadKey);
          tweed.enqueue(new Runnable(){
            @Override public void run(){
              removeGeometryFor(sf);
              tweed.frame.setGenUI(null);
              sf.skel=(PlanSkeleton)threadKey;
              for (              Face f : sf.skel.output.faces.values()) {
                WallTag wt=((WallTag)GreebleHelper.getTag(f.profile,WallTag.class));
                if (wt != null && wt.miniFacade == null) {
                  wt.miniFacade=new MiniFacade();
                  SETag set=(SETag)GreebleHelper.getTag(f.plan,SETag.class);
                  if (set != null)                   wt.miniFacade.app.parent=(SuperFace)set.se.face;
                }
              }
              sf.skel.output.addNonSkeletonSharedEdges(new RoofTag(Colourz.toF4(sf.mr.app.color)));
              sf.mr.setOutline(sf.skel.output);
              setSkel((PlanSkeleton)threadKey,sf);
            }
          }
);
        }
        public void addedBar(        Bar bar){
          SETag oldTag=(SETag)bar.tags.iterator().next();
          bar.tags.clear();
          SuperEdge se=new SuperEdge(bar.start,bar.end,null);
          SETag tag=new SETag(se,sf);
          tag.color=Rainbow.random();
          tag.name=Math.random() + "String_Node_Str";
          bar.tags.add(tag);
          List<Point2d> defpts=new ArrayList<>();
          defpts.add(new Point2d(0,0));
          defpts.add(new Point2d(0,-10));
          defpts.add(new Point2d(5,-15));
          Profile profile=new Profile(defpts);
          tagWalls(sf,profile,se,bar.start,bar.end);
          plan.addLoop(profile.points.get(0),plan.root,profile);
          plan.profiles.put(bar,profile);
        }
      }
;
      siteplan.setVisible(true);
      siteplan.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }
  }
);
  ui.add(camp);
  JButton tex=new JButton("String_Node_Str");
  tex.addActionListener(x -> {
    tweed.setTool(new TextureTool(tweed));
    SkelGen.this.textureSelected(skel,house,sf,se,se.toEdit);
  }
);
  ui.add(tex);
  JButton remove=new JButton("String_Node_Str");
  remove.addActionListener(e -> {
    block.faces.remove(sf);
    calculateOnJmeThread();
  }
);
  ui.add(remove);
  tweed.frame.setGenUI(ui);
}