factor out exception handling cases

This commit is contained in:
Michael McCandless 2015-12-16 10:22:18 -05:00 committed by mikemccand
parent 52c092e4fa
commit ed5c0e7f13

View File

@ -1223,6 +1223,29 @@ public class IndexShard extends AbstractIndexShardComponent {
} }
} }
private void handleRefreshException(Exception e) {
if (e instanceof EngineClosedException) {
// ignore
} else if (e instanceof RefreshFailedEngineException e) {
RefreshFailedEngineException rfee = (RefreshFailedEngineException) e;
if (rfee.getCause() instanceof InterruptedException) {
// ignore, we are being shutdown
} else if (rfee.getCause() instanceof ClosedByInterruptException) {
// ignore, we are being shutdown
} else if (rfee.getCause() instanceof ThreadInterruptedException) {
// ignore, we are being shutdown
} else {
if (state != IndexShardState.CLOSED) {
logger.warn("Failed to perform engine refresh", e);
}
}
} else {
if (state != IndexShardState.CLOSED) {
logger.warn("Failed to perform engine refresh", e);
}
}
}
/** /**
* Called when our shard is using too much heap and should move buffered indexed/deleted documents to disk. * Called when our shard is using too much heap and should move buffered indexed/deleted documents to disk.
*/ */
@ -1242,24 +1265,8 @@ public class IndexShard extends AbstractIndexShardComponent {
} finally { } finally {
indexingMemoryController.removeWritingBytes(IndexShard.this, bytes); indexingMemoryController.removeWritingBytes(IndexShard.this, bytes);
} }
} catch (EngineClosedException ex) {
// ignore
} catch (RefreshFailedEngineException e) {
if (e.getCause() instanceof InterruptedException) {
// ignore, we are being shutdown
} else if (e.getCause() instanceof ClosedByInterruptException) {
// ignore, we are being shutdown
} else if (e.getCause() instanceof ThreadInterruptedException) {
// ignore, we are being shutdown
} else {
if (state != IndexShardState.CLOSED) {
logger.warn("Failed to perform scheduled engine refresh", e);
}
}
} catch (Exception e) { } catch (Exception e) {
if (state != IndexShardState.CLOSED) { handleRefreshException(e);
logger.warn("Failed to perform scheduled engine refresh", e);
}
} }
} }
}); });
@ -1282,24 +1289,8 @@ public class IndexShard extends AbstractIndexShardComponent {
if (getEngine().refreshNeeded()) { if (getEngine().refreshNeeded()) {
refresh("schedule"); refresh("schedule");
} }
} catch (EngineClosedException e) {
// we are being closed, ignore
} catch (RefreshFailedEngineException e) {
if (e.getCause() instanceof InterruptedException) {
// ignore, we are being shutdown
} else if (e.getCause() instanceof ClosedByInterruptException) {
// ignore, we are being shutdown
} else if (e.getCause() instanceof ThreadInterruptedException) {
// ignore, we are being shutdown
} else {
if (state != IndexShardState.CLOSED) {
logger.warn("Failed to perform scheduled engine refresh", e);
}
}
} catch (Exception e) { } catch (Exception e) {
if (state != IndexShardState.CLOSED) { handleRefreshException(e);
logger.warn("Failed to perform scheduled engine refresh", e);
}
} }
reschedule(); reschedule();