@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 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 void onError(final int errorCode, final String errorMessage) { this.errorMessage = errorMessage; this.errorCode = errorCode; countLatch.countDown(); if (delegateCompletion != null) { delegateCompletion.onError(errorCode, errorMessage); } }
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); } } }
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); } } }
@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 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 writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { if (callback == null) { throw new NullPointerException("callback parameter need to be set"); } try { internalWrite(bytes, sync, callback, true); } catch (Exception e) { callback.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(), e.getMessage()); } }
@Override public void writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { if (callback == null) { throw new NullPointerException("callback parameter need to be set"); } try { internalWrite(bytes, sync, callback, true); } catch (Exception e) { callback.onError(ActiveMQExceptionType.GENERIC_EXCEPTION.getCode(), e.getMessage()); } }
private void checkIsOpen(IOCallback callback) { if (!isOpen()) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), "File not opened"); } }
private void checkIsOpen(IOCallback callback) { if (!isOpen()) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), "File not opened"); } }
@Override public void run() { try { libaioFile.write(position, bytes, buffer, this); } catch (IOException e) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()); onIOError(e, "Failed to write to file", sequentialFile); } }
@Override public void run() { try { libaioFile.write(position, bytes, buffer, this); } catch (IOException e) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), e.getMessage()); onIOError(e, "Failed to write to file", sequentialFile); } }
private void setErrorCondition(IOCallback otherCallback, JournalTransaction jt, Throwable t) { TransactionCallback callback = null; if (jt != null) { callback = jt.getCurrentCallback(); if (callback != null && callback.getErrorMessage() != null) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), t.getMessage()); } } if (otherCallback != null && otherCallback != callback) { otherCallback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), t.getMessage()); } }
private void setErrorCondition(IOCallback otherCallback, JournalTransaction jt, Throwable t) { TransactionCallback callback = null; if (jt != null) { callback = jt.getCurrentCallback(); if (callback != null && callback.getErrorMessage() != null) { callback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), t.getMessage()); } } if (otherCallback != null && otherCallback != callback) { otherCallback.onError(ActiveMQExceptionType.IO_ERROR.getCode(), t.getMessage()); } }
/** * Note: Parameter sync is not used on AIO */ @Override public void writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); callback.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(callback, bytes); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); }
/** * Note: Parameter sync is not used on AIO */ @Override public void writeDirect(final ByteBuffer bytes, final boolean sync, final IOCallback callback) { try { checkOpened(); } catch (Exception e) { ActiveMQJournalLogger.LOGGER.warn(e.getMessage(), e); callback.onError(-1, e.getMessage()); return; } final int bytesToWrite = factory.calculateBlockSize(bytes.limit()); final long positionToWrite = position.getAndAdd(bytesToWrite); AIOSequentialFileFactory.AIOSequentialCallback runnableCallback = getCallback(callback, bytes); runnableCallback.initWrite(positionToWrite, bytesToWrite); runnableCallback.run(); }
@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 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()); } } }
@Override public void write(EncodingSupport bytes, boolean sync, IOCallback callback) throws IOException { if (callback == null) { throw new NullPointerException("callback parameter need to be set"); } checkIsOpen(callback); try { this.mappedFile.write(bytes); if (factory.isDatasync() && sync) { this.mappedFile.force(); } callback.done(); } 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; } }