@Override
        @SuppressWarnings("SleepWhileInLoop")
        public void run() {
            while (ModelSMSListener.isConnected()) {
                try {
                    if (ModelSMSListener.isInbound()) {
                        report = new Date() + "# Waiting for incoming sms...\n"
                                + new Date() + "# " + ModelSMSListener.getNewMsg() + "\n"
                                + "------------------------------------------------------------------------\n"
                                + ModelSMSListener.getInboundMessage() + "\n"
                                + "------------------------------------------------------------------------\n";
                        if (ModelSMSListener.isDocGenerated()) {
                            report = report + new Date() + "# Generating SMS document with current time stamp\n"
                                    + new Date() + "# SMS document temporary created at: _gendocs/" + ModelSmsApp.getDocName() + "\n";
                        }
                        if (ModelSMSListener.isLogFileCreated()) {
                            report = report + new Date() + "# Generating SMS log file at: _smslogs/\n";
                        }
                        if (ModelSMSListener.isEmailSent()) {
                            report = report + new Date() + "# Attached and sent document to Alfresco: " + ModelSMSListener.getAlfrescoEmail() + "\n";
                        }
                        if (ModelSMSListener.isSmsSavedToDB()) {
                            report = report + new Date() + "# Message encrypted and logged to the database at: 120.0.0.1/_dbsmsapp\n";
                        } else {
                            report = report + new Date() + "# Error saving sms to the database at: 120.0.0.1/_dbsmsapp\n";
                        }
                        if (Utils.deleteTempFile(ModelSmsApp.getDocName())) {
                            report = report + new Date() + "# Deleted temporary doc file at _gendocs/" + ModelSmsApp.getDocName() + "\n";
                        }
                        if (ModelSMSListener.isSmsDeleted()) {
                            report = report + new Date() + "# SMS deleted to free SIM memory\n";
                        }
                        report = report + "------------------------------------------------------------------------\n";
                        ModelTrackInboundMsgs.trackReport = ModelTrackInboundMsgs.getTrackReport() + report;
                        jTextAreaLogs.append(ModelTrackInboundMsgs.getTrackReport());
                        ModelSMSListener.inbound = false;
                    }

                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    ApplicationErrors.logErrors(getClass().getName(), e.getMessage());
                }
            }
        }