@Override public void init(WebConnection wc) { LOGGER.config("Servlet 3.1 Upgrade"); try { is = wc.getInputStream(); os = wc.getOutputStream(); this.wc = wc; } catch (IOException ioe) { throw new RuntimeException(ioe); } try { is.setReadListener(this); } catch (IllegalStateException e) { LOGGER.log(Level.WARNING, e.getMessage(), e); } connection = upgradeInfo.createConnection(writer, new Connection.CloseListener() { @Override public void close(CloseReason reason) { try { TyrusHttpUpgradeHandler.this.getWebConnection().close(); } catch (Exception e) { LOGGER.log(Level.FINE, e.getMessage(), e); } } }); connectionLatch.countDown(); }
@Override public synchronized void write(final ByteBuffer buffer, CompletionHandler<ByteBuffer> completionHandler) { // first write if (servletOutputStream == null) { try { servletOutputStream = tyrusHttpUpgradeHandler.getWebConnection().getOutputStream(); } catch (IOException e) { LOGGER.log(Level.CONFIG, "ServletOutputStream cannot be obtained", e); completionHandler.failed(e); return; } } if (queue.isEmpty() && servletOutputStream.isReady()) { _write(buffer, completionHandler); } else { final QueuedFrame queuedFrame = new QueuedFrame(completionHandler, buffer); queue.offer(queuedFrame); if (!isListenerSet) { isListenerSet = true; servletOutputStream.setWriteListener(this); } } }
try { sis = connection.getInputStream(); sos = connection.getOutputStream(); } catch (IOException e) { throw new IllegalStateException(e);