@Override public void executeOnCompletion(final IOCallback runnable) { // There are no executeOnCompletion calls while using the DummyOperationContext // However we keep the code here for correctness runnable.done(); }
@Override public synchronized void onError(final int errorCode, final String errorMessage) { this.errorCode = errorCode; this.errorMessage = errorMessage; if (tasks != null) { Iterator<TaskHolder> iter = tasks.iterator(); while (iter.hasNext()) { TaskHolder holder = iter.next(); holder.task.onError(errorCode, errorMessage); iter.remove(); } } }
@Override public synchronized int read(ByteBuffer bytes, final IOCallback callback) throws SQLException { synchronized (writeLock) { try { int read = dbDriver.readFromFile(this, bytes); readPosition += read; if (callback != null) callback.done(); return read; } catch (SQLException e) { if (callback != null) callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()); fileFactory.onIOError(e, "Error reading from JDBC file.", this); } return 0; } }
@Override public int read(ByteBuffer bytes, IOCallback callback) throws IOException { if (callback == null) { throw new NullPointerException("callback parameter need to be set"); } checkIsOpen(callback); try { final int position = bytes.position(); final int limit = bytes.limit(); final int remaining = limit - position; if (remaining > 0) { final int bytesRead = this.mappedFile.read(bytes, position, remaining); final int newPosition = position + bytesRead; bytes.position(newPosition); bytes.flip(); callback.done(); return bytesRead; } else { callback.done(); return 0; } } catch (IOException e) { if (this.criticalErrorListener != null) { this.criticalErrorListener.onIOException(new ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(), this); } callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()); throw e; } }
@Override public int read(ByteBuffer bytes, IOCallback callback) throws IOException { if (callback == null) { throw new NullPointerException("callback parameter need to be set"); } checkIsOpen(callback); try { final int position = bytes.position(); final int limit = bytes.limit(); final int remaining = limit - position; if (remaining > 0) { final int bytesRead = this.mappedFile.read(bytes, position, remaining); final int newPosition = position + bytesRead; bytes.position(newPosition); bytes.flip(); callback.done(); return bytesRead; } else { callback.done(); return 0; } } catch (IOException e) { if (this.criticalErrorListener != null) { this.criticalErrorListener.onIOException(new ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(), this); } callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()); throw e; } }
@Override public void executeOnCompletion(final IOCallback runnable) { runnable.done(); } };
@Override public void onError(final int errorCode, final String errorMessage) { this.errorMessage = errorMessage; this.errorCode = errorCode; countLatch.countDown(); if (delegateCompletion != null) { delegateCompletion.onError(errorCode, errorMessage); } }
@Override public synchronized int read(final ByteBuffer bytes, final IOCallback callback) throws IOException, ActiveMQIllegalStateException { try { if (channel == null) { throw new ActiveMQIllegalStateException("File " + this.getFileName() + " has a null channel"); } int bytesRead = channel.read(bytes); if (callback != null) { callback.done(); } bytes.flip(); return bytesRead; } catch (ClosedChannelException e) { throw e; } catch (IOException e) { if (callback != null) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getLocalizedMessage()); } factory.onIOError(new ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(), this); throw e; } }
@Override public void executeOnCompletion(final IOCallback runnable) { // There are no executeOnCompletion calls while using the DummyOperationContext // However we keep the code here for correctness runnable.done(); }
@Override public void onError(final int errorCode, final String errorMessage) { this.errorMessage = errorMessage; this.errorCode = errorCode; countLatch.countDown(); if (delegateCompletion != null) { delegateCompletion.onError(errorCode, errorMessage); } }
@Override public synchronized int read(final ByteBuffer bytes, final IOCallback callback) throws IOException, ActiveMQIllegalStateException { try { if (channel == null) { throw new ActiveMQIllegalStateException("File " + this.getFileName() + " has a null channel"); } int bytesRead = channel.read(bytes); if (callback != null) { callback.done(); } bytes.flip(); return bytesRead; } catch (ClosedChannelException e) { throw e; } catch (IOException e) { if (callback != null) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getLocalizedMessage()); } factory.onIOError(new ActiveMQIOErrorException(e.getMessage(), e), e.getMessage(), this); throw e; } }
@Override public void executeOnCompletion(IOCallback runnable, boolean storeOnly) { // There are no executeOnCompletion calls while using the DummyOperationContext // However we keep the code here for correctness runnable.done(); }
private static void invokeOnErrorOn(final int errorCode, final String errorMessage, List<? extends IOCallback> callbacks) { final int size = callbacks.size(); for (int i = 0; i < size; i++) { try { final IOCallback callback = callbacks.get(i); callback.onError(errorCode, errorMessage); } catch (Throwable e) { ActiveMQJournalLogger.LOGGER.errorCallingErrorCallback(e); } } }
/** * This is callbed by the AIOSequentialFile, after determined the callbacks were returned in sequence */ public void sequentialDone() { if (error) { callback.onError(errorCode, errorMessage); onIOError(new ActiveMQException(errorCode, errorMessage), errorMessage, null); errorMessage = null; } else { if (callback != null) { callback.done(); } if (buffer != null && reuseBuffers && releaseBuffer) { buffersControl.bufferDone(buffer); } callbackPool.put(AIOSequentialCallback.this); } } }
@Override public void afterStoreOperations(IOCallback run) { run.done(); }
private static void invokeOnErrorOn(final int errorCode, final String errorMessage, List<? extends IOCallback> callbacks) { final int size = callbacks.size(); for (int i = 0; i < size; i++) { try { final IOCallback callback = callbacks.get(i); callback.onError(errorCode, errorMessage); } catch (Throwable e) { ActiveMQJournalLogger.LOGGER.errorCallingErrorCallback(e); } } }
/** * This is callbed by the AIOSequentialFile, after determined the callbacks were returned in sequence */ public void sequentialDone() { if (error) { if (callback != null) { callback.onError(errorCode, errorMessage); } onIOError(new ActiveMQException(errorCode, errorMessage), errorMessage, null); errorMessage = null; } else { if (callback != null) { callback.done(); } if (buffer != null && reuseBuffers && releaseBuffer) { buffersControl.bufferDone(buffer); } callbackPool.put(AIOSequentialCallback.this); } } }
@Override public void executeOnCompletion(IOCallback runnable, boolean storeOnly) { runnable.done(); }
@Override public void onError(final int errorCode, final String errorMessage) { if (logger.isTraceEnabled()) { logger.trace("onError" + " code: " + errorCode + " message: " + errorMessage); } final int size = delegates.size(); for (int i = 0; i < size; i++) { try { delegates.get(i).onError(errorCode, errorMessage); } catch (Throwable e) { ActiveMQJournalLogger.LOGGER.errorCallingErrorCallback(e); } } } }
@Override public void run() { if (sendError) { callback.onError(ActiveMQExceptionType.UNSUPPORTED_PACKET.getCode(), "Fake aio error"); } else { try { file.data.put(bytes); if (callback != null) { callback.done(); } } catch (Throwable e) { e.printStackTrace(); callback.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(), e.getMessage()); } } }