Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.bounceme.dur.server.streams;
- import net.bounceme.dur.jdbc.Title;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.net.Socket;
- import java.util.NoSuchElementException;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import net.bounceme.dur.jdbc.Queries;
- public class WorkerRunnable implements Runnable {
- private static final Logger log = Logger.getLogger(WorkerRunnable.class.getName());
- protected Socket socket = null;
- private RecordsQueueWrapper recordsQueue = null;
- private final Queries queries = new Queries();
- public WorkerRunnable(Socket clientSocket, RecordsQueueWrapper recordsQueue) {
- this.socket = clientSocket;
- this.recordsQueue = recordsQueue;
- }
- @Override
- public void run() {
- Title serverTitle = null;
- Title clientTitle = null;
- boolean queueEmpty = false;
- try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
- ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream())) {
- do {
- try {
- serverTitle = recordsQueue.pop();
- log.info(serverTitle.toString());
- objectOutputStream.writeObject(serverTitle);
- log.fine(serverTitle.getClass().getCanonicalName());
- clientTitle = (Title) objectInputStream.readObject();
- queries.updateTitle(clientTitle);
- } catch (NoSuchElementException nse) {
- queueEmpty = true;
- }
- } while (!queueEmpty);
- } catch (java.io.EOFException eofe) {
- log.log(Level.WARNING, "why is there no record from client?\n", eofe);
- } catch (IOException | ClassNotFoundException ex) {
- Logger.getLogger(WorkerRunnable.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment