@Override public void onMessage(Message message, Connection connection) { if (message instanceof DataResponse) { Log.traceCall(message.toString() + " / connection=" + connection); DataResponse dataResponse = (DataResponse) message; if (dataResponse.requestNonce == nonce) { stopTimeoutTimer(); // connection.getPeersNodeAddressOptional() is not present at the first call log.debug( "connection.getPeersNodeAddressOptional() " + connection.getPeersNodeAddressOptional()); connection .getPeersNodeAddressOptional() .ifPresent( peersNodeAddress -> { ((DataResponse) message) .dataSet .stream() .forEach(e -> dataStorage.add(e, peersNodeAddress)); }); shutDown(); listener.onComplete(); } else { log.debug( "Nonce not matching. That happens if we get a response after a canceled handshake " + "(timeout). We drop that message. nonce={} / requestNonce={}", nonce, dataResponse.requestNonce); } } }
private void onRequestUpload() { if (tempAttachments.size() < 3) { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open file to attach"); /* if (Utilities.isUnix()) fileChooser.setInitialDirectory(new File(System.getProperty("user.home")));*/ File result = fileChooser.showOpenDialog(stage); if (result != null) { try { URL url = result.toURI().toURL(); try (InputStream inputStream = url.openStream()) { byte[] filesAsBytes = ByteStreams.toByteArray(inputStream); if (filesAsBytes.length <= Connection.getMaxMsgSize()) { tempAttachments.add( new DisputeDirectMessage.Attachment(result.getName(), filesAsBytes)); inputTextArea.setText( inputTextArea.getText() + "\n[Attachment " + result.getName() + "]"); } else { new Popup().error("The max. allowed file size is 100 kB.").show(); } } catch (java.io.IOException e) { e.printStackTrace(); log.error(e.getMessage()); } } catch (MalformedURLException e2) { e2.printStackTrace(); log.error(e2.getMessage()); } } } else { new Popup().error("You cannot send more then 3 attachments in one message.").show(); } }