Am populating data in table View of javafx tables but am unnecessarily constantly getting a null pointer error on the columns that I surely failed to trace it's cause.
This is the section of the tableview in the Controller:
      private ObservableList<Branches> tableDate= FXCollections.observableArrayList();
@FXML // fx:id="branchId"
private TableColumn<Branches, Integer> BranchId; // Value injected by FXMLLoader
@FXML // fx:id="branchType"
private TableColumn<Branches, Integer> BranchType; // Value injected by FXMLLoader
@FXML // fx:id="branchName"
private TableColumn<Branches, String> BranchName; // Value injected by FXMLLoader
@FXML // fx:id="branchApproval"
private TableColumn<Branches, Integer> BranchApproval; // Value injected by FXMLLoader
@FXML // fx:id="table"
private TableView<Branches> table; // Value injected by FXMLLoader
      @FXML // This method is called by the FXMLLoader when initialization is complete
     void initialize() {
   //        Platform.runLater(()->{
       connect.getBranches().subscribe(branches-> tableDate.add(branches));
       logger.info(tableDate.size()+"=what?");
        if(tableDate.size()>0) {
        tableDate.forEach(items->{logger.info(items.toString());});
        logger.toString();
        BranchId.setCellValueFactory(new PropertyValueFactory<>("branchId"));
        BranchName.setCellValueFactory(new PropertyValueFactory<>("branchName"));
        BranchType.setCellValueFactory(new PropertyValueFactory<>("branchType"));
        BranchApproval.setCellValueFactory(new PropertyValueFactory<> 
      ("fkApprovalDetailsIdBranch"));
            table.setItems(tableDate);
          }
         logger.info(tableDate.size()+"=what?");
    //        });
        }
This is the log of the dataset that am trying to populate:
   +03:00  INFO 14080 --- [lication Thread] c.g.p.c.BackLoginMainController          : 
    Branches(branchId=500, branchType=1100, branchName=MAKINDYE III, 
  fkApprovalDetailsIdBranch=152)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
   c.g.p.c.BackLoginMainController          : Branches(branchId=501, branchType=1200, 
   branchName=PEAKCOCK HOUSE II, fkApprovalDetailsIdBranch=4)
  2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=502, branchType=1200, 
 branchName=KIWANDAGALALA, fkApprovalDetailsIdBranch=139)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=503, branchType=1200, 
 branchName=BRANCH TYPE, fkApprovalDetailsIdBranch=140)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=504, branchType=1200, 
 branchName=BRANCH 4, fkApprovalDetailsIdBranch=141)
2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
c.g.p.c.BackLoginMainController          : Branches(branchId=505, branchType=1200, 
branchName=BRANCH 9, fkApprovalDetailsIdBranch=142)
2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
c.g.p.c.BackLoginMainController          : Branches(branchId=506, branchType=1100, 
branchName=KATOSI 11, fkApprovalDetailsIdBranch=150)
2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=508, branchType=1100, 
 branchName=NANSANA BRANCH, fkApprovalDetailsIdBranch=212)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
  c.g.p.c.BackLoginMainController          : Branches(branchId=509, branchType=1200, 
 branchName=GULU, fkApprovalDetailsIdBranch=213)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=510, branchType=1100, 
  branchName=NTINDA, fkApprovalDetailsIdBranch=214)
2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=511, branchType=1200, 
branchName=NEW BRANCH TESTING, fkApprovalDetailsIdBranch=215)
2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
c.g.p.c.BackLoginMainController          : Branches(branchId=512, branchType=1100, 
 branchName=NEW HEADOFFICE, fkApprovalDetailsIdBranch=216)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=513, branchType=1100, 
 branchName=NEW HEADOFFICESS, fkApprovalDetailsIdBranch=217)
 2022-07-10T10:01:55.643+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=514, branchType=1200, 
 branchName=NEW KATWE BRANCH, fkApprovalDetailsIdBranch=218)
 2022-07-10T10:01:55.644+03:00  INFO 14080 --- [lication Thread] 
 c.g.p.c.BackLoginMainController          : Branches(branchId=515, branchType=1100, 
 branchName=MATUGA BRANCH, fkApprovalDetailsIdBranch=221)
This is the full error log:
       Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1724)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$ClickGenerator.postProcess(Scene.java:3586)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3890)
    at javafx.scene.Scene.processMouseEvent(Scene.java:1874)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2607)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:551)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
    at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1852)
    ... 29 more
Caused by: java.lang.RuntimeException: javafx.fxml.LoadException: 
/E:/Googo%20Projects/PROJECTS/pinkApple/pinkAppleFrontEnd/FrontEnd/pinkappleGui/target/classes/views/main/main.fxml
    at com.gui.pinkapplegui.StageInitializer.createView(StageInitializer.java:52)
    at com.gui.pinkapplegui.controllers.LoginControler.loginToNewWindow(LoginControler.java:37)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    ... 36 more
Caused by: javafx.fxml.LoadException: 
/E:/Googo%20Projects/PROJECTS/pinkApple/pinkAppleFrontEnd/FrontEnd/pinkappleGui/target/classes/views/main/main.fxml
    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2677)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516)
    at com.gui.pinkapplegui.StageInitializer.createView(StageInitializer.java:48)
    ... 38 more
    Caused by: java.lang.reflect.InvocationTargetException
        at 
 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
        at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2673)
        ... 41 more
   
 Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.BranchId" is null
        at com.gui.pinkapplegui.controllers.BackLoginMainController.initialize(BackLoginMainController.java:72)
        at 
     
     java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104
)
        
This is the FXML file:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="749.0" maxWidth="1000.0" minHeight="700.0" minWidth="992.0" prefHeight="749.0" prefWidth="992.0" style="-fx-background-color: #2e2d2d;" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.gui.pinkapplegui.controllers.BackLoginMainController">
   <children>
      <Button layoutX="398.0" layoutY="698.0" mnemonicParsing="false" onMouseClicked="#getbackToLogIn" prefHeight="25.0" prefWidth="152.0" style="-fx-background-color: #c9104e;" text="Back" textFill="WHITE" />
      <Pane layoutX="23.0" layoutY="14.0" prefHeight="669.0" prefWidth="901.0" style="-fx-background-color: #c9104e;">
         <children>
            <TableView layoutX="25.0" layoutY="38.0" prefHeight="592.0" prefWidth="854.0">
              <columns>
                <TableColumn fx:id="branchId" prefWidth="122.0" text="BranchId" />
                <TableColumn fx:id="branchName" prefWidth="365.0" text="BranchName" />
                  <TableColumn fx:id="branchType" minWidth="0.0" prefWidth="130.0" text="BranchType" />
                  <TableColumn fx:id="branchApproval" prefWidth="189.0" text="BranchApproval" />
              </columns>
            </TableView>
         </children>
      </Pane>
   </children>
</Pane>
