Issue:
After receiving a message from a the MessageListener class adds a message to a private final ObservableList<String> which in turn updates the GUI on change. the problem is that this happens inconsistently and for some unknown reason there seems to be 2 lists that interchange in adding the message to its list. 
here is a log of this behavior:
INFO: Message received: 
Text: SSN= 1223 Requested amount= 11€ time= 110
ID: ID:78-192.168.0.23(84:be:e3:92:5b:b3)-1-1519325025180
Reply to: null
Feb 22, 2018 7:43:45 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:SSN= 1223 Requested amount= 11€ time= 110
Feb 22, 2018 7:43:45 PM Bank.ABNAmbro addMessages
INFO: New size: 2
Feb 22, 2018 7:43:54 PM Bank.BankMessageListener onMessage
INFO: Message received: 
Text: SSN= 1223 Requested amount= 11€ time= 110
ID: ID:82-192.168.0.23(84:be:e3:92:5b:b3)-1-1519325034484
Reply to: null
Feb 22, 2018 7:43:54 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:SSN= 1223 Requested amount= 11€ time= 110
Feb 22, 2018 7:43:54 PM Bank.ABNAmbro addMessages
INFO: New size: 9
Feb 22, 2018 7:43:55 PM Bank.BankMessageListener onMessage
INFO: Message received: 
Text: SSN= 1223 Requested amount= 11€ time= 110
ID: ID:86-192.168.0.23(84:be:e3:92:5b:b3)-1-1519325035575
Reply to: null
Feb 22, 2018 7:43:55 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:SSN= 1223 Requested amount= 11€ time= 110
Feb 22, 2018 7:43:55 PM Bank.ABNAmbro addMessages
INFO: New size: 10
Feb 22, 2018 7:43:57 PM Bank.BankMessageListener onMessage
INFO: Message received: 
Text: SSN= 1223 Requested amount= 11€ time= 110
ID: ID:90-192.168.0.23(84:be:e3:92:5b:b3)-1-1519325037074
Reply to: null
Feb 22, 2018 7:43:57 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:SSN= 1223 Requested amount= 11€ time= 110
Feb 22, 2018 7:43:57 PM Bank.ABNAmbro addMessages
INFO: New size: 11
Feb 22, 2018 7:43:58 PM Bank.BankMessageListener onMessage
INFO: Message received: 
Text: SSN= 1223 Requested amount= 11€ time= 110
ID: ID:94-192.168.0.23(84:be:e3:92:5b:b3)-1-1519325038499
Reply to: null
Feb 22, 2018 7:43:58 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:SSN= 1223 Requested amount= 11€ time= 110
Feb 22, 2018 7:43:58 PM Bank.ABNAmbro addMessages
INFO: New size: 3
If I mock the MessageListener class to just add a String every few seconds the log shows 2 lists that have the same size.
Feb 22, 2018 9:12:16 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 0
Feb 22, 2018 9:12:16 PM Bank.ABNAmbro addMessages
INFO: New sieze: 0
Feb 22, 2018 9:12:16 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 0
Feb 22, 2018 9:12:16 PM Bank.ABNAmbro addMessages
INFO: New sieze: 0
Feb 22, 2018 9:12:17 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 1
Feb 22, 2018 9:12:17 PM Bank.ABNAmbro addMessages
INFO: New sieze: 1
Feb 22, 2018 9:12:17 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 1
Feb 22, 2018 9:12:17 PM Bank.ABNAmbro addMessages
INFO: New sieze: 1
Feb 22, 2018 9:12:18 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 2
Feb 22, 2018 9:12:18 PM Bank.ABNAmbro addMessages
INFO: New sieze: 2
Feb 22, 2018 9:12:18 PM Bank.ABNAmbro addMessages
INFO: Adding message to List:Test 2
Feb 22, 2018 9:12:18 PM Bank.ABNAmbro addMessages
INFO: New sieze: 2
The Controller class:
package Bank;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.stage.Stage;
import javax.jms.*;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ABNAmbro extends Application implements Bank {
    private String tile = "bank";
    private List<String> messages = new ArrayList<String>();
    private final ObservableList<String> olMessages = FXCollections.observableArrayList(messages);
    Logger logger = Logger.getLogger("ABNAmbro");
    @FXML
    ListView lsRequestView;
    @Override
    public void start(Stage primaryStage) throws IOException {
        Parent root = FXMLLoader.load(getClass().getResource("/Bank/Bank.fxml"));
        Scene scene = new Scene(root);
        primaryStage.setTitle(tile);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    @FXML
    public void initialize() {
        lsRequestView.setItems(olMessages);
    }
    public ABNAmbro() throws NamingException {
        tile = "ABNAmbro Loan Department.";
        String queuename = "ABNBankqueue";
        MessageListener messageListener = new BankMessageListener(this);
        InitialContext initialContext = new InitialContext();
        //JMS 2.0 lookup
        ConnectionFactory connectionFactory = (ConnectionFactory) initialContext.lookup("java:comp/DefaultJMSConnectionFactory");
        //Creating context to reseive messages
        JMSContext context = connectionFactory.createContext();
        Queue queue = (Queue) initialContext.lookup(queuename);
        //create consumer and add a message listener to it so it can get its message async 
        JMSConsumer consumer = context.createConsumer(queue);
        consumer.setMessageListener(messageListener);
    }
    @FXML
    public void SendResponse(ActionEvent event) {
    }
    public void addMessages(final String messages) {
        logger.log(Level.INFO,"Adding message to List:" + messages);
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                //adding message to list
                olMessages.add(messages);
            }
        });
        logger.log(Level.INFO, "New sieze: " + olMessages.size());
    }
}
MessageListener:
package Bank;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import java.util.logging.Level;
import java.util.logging.Logger;
public class BankMessageListener implements MessageListener{
    private Bank bank;
    private Logger logger;
    public BankMessageListener(Bank bank){
        this.bank = bank;
        logger = Logger.getLogger("BankMessageListener");
    }
    public void onMessage(final Message message) {
        try {
            logger.log(Level.INFO,"Message received: \n" +
                    "Text: "+((TextMessage)message).getText()
                    + "\nID: " +message.getJMSMessageID()
                    + "\nReply to: "  +((message.getJMSReplyTo() != null) ? message.getJMSReplyTo().toString() : "null")
            );
            bank.addMessages(((TextMessage) message).getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}
