public void run()

in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/websockets/WSHandler.java [109:169]


        public void         run () {
            try {
                for (;;) {

                    NextResult next;

                    Throwable exception = null;
                    synchronized (object) {
                        try {
                            next = c.nextIfAvailable();
                        } catch (UnavailableResourceException x) {
                            continue;
                        } catch (CursorIsClosedException x) {
                            if (session.isOpen()) {
                                session.sendMessage(new TextMessage(x.getMessage(), true));
                            }
                            stop(CloseStatus.NORMAL);
                            break;
                        } catch (CursorException x) {
                            next = NextResult.OK;
                            exception = x;
                        } catch (Throwable x) {
                            if (session.isOpen()) {
                                session.sendMessage(new TextMessage(x.getMessage(), false));
                            }
                            stop(CloseStatus.SERVER_ERROR);
                            return;
                        }

                        if (exception != null) {
                            if (session.isOpen()) {
                                session.sendMessage(new TextMessage(exception.getMessage(), false));
                            }
                            continue;
                        }

                        if (next == NextResult.OK) {
                            if (cursor.getMessage().getTimeStampMs() <= toTimestamp) {

                                buffer.append((RawMessage) cursor.getMessage());
                                if (buffer.canFlush())
                                    sendBuffer();

                                messages++;
                            } else {
                                stop(CloseStatus.NORMAL);
                                break;
                            }
                        } else if (next == NextResult.END_OF_CURSOR) {
                            stop(CloseStatus.NORMAL);
                            break;
                        }
                    }
                }
                // else continue with NextResult.UNAVAILABLE
            } catch (ChannelClosedException x) {
                stop(CloseStatus.NORMAL);
            } catch (IOException iox) {
                stop(CloseStatus.SERVER_ERROR);
            }
        }