ResponseConverter.setControllerException(controller, e); ResponseConverter.setControllerException(controller, wrapped); } finally { for (RegionScanner innerScanner : regionScanners) {
@Override public void resumeScan(RpcController controller, ScanControlProtos.ScanControlRequest request, RpcCallback<ScanControlProtos.ScanControlResponse> done) { ScanControlProtos.ScanControlResponse response = null; try { response = ScanControlProtos.ScanControlResponse.getDefaultInstance(); } catch (Exception e) { ResponseConverter.setControllerException(controller, new IOException(e)); } done.run(response); }
@Override public void getStatistics(RpcController controller, ObserverStatisticsProtos.StatisticsRequest request, RpcCallback<ObserverStatisticsProtos.StatisticsResponse> done) { ObserverStatisticsProtos.StatisticsResponse response = null; try { ObserverStatisticsProtos.StatisticsResponse.Builder builder = ObserverStatisticsProtos.StatisticsResponse.newBuilder(); ObserverStatisticsProtos.NameInt32Pair.Builder pair = ObserverStatisticsProtos.NameInt32Pair.newBuilder(); for (Map.Entry<String, Integer> entry : stats.entrySet()) { pair.setName(entry.getKey()); pair.setValue(entry.getValue().intValue()); builder.addAttribute(pair.build()); } response = builder.build(); // optionally clear out stats if (request.hasClear() && request.getClear()) { synchronized (stats) { stats.clear(); } } } catch (Exception e) { ResponseConverter.setControllerException(controller, new IOException(e)); } done.run(response); }
@Override public void getCellCount(RpcController controller, RowCounterProtos.CountRequest request, RpcCallback<RowCounterProtos.CountResponse> done) { RowCounterProtos.CountResponse response = null; try { long count = getCount(null, true); response = RowCounterProtos.CountResponse.newBuilder() .setCount(count).build(); } catch (IOException ioe) { ResponseConverter.setControllerException(controller, ioe); } done.run(response); }
@Override public void getRowCount(RpcController controller, RowCounterProtos.CountRequest request, RpcCallback<RowCounterProtos.CountResponse> done) { RowCounterProtos.CountResponse response = null; try { long count = getCount(new FirstKeyOnlyFilter(), false); response = RowCounterProtos.CountResponse.newBuilder() .setCount(count).build(); } catch (IOException ioe) { ResponseConverter.setControllerException(controller, ioe); } done.run(response); }
ResponseConverter.setControllerException(controller, ioe); } finally { IOUtils.closeQuietly(innerScanner);
@Override @InterfaceAudience.Private public void callMethod(Descriptors.MethodDescriptor method, RpcController controller, Message request, Message responsePrototype, RpcCallback<Message> callback) { Message response = null; try { response = callExecService(method, request, responsePrototype); } catch (IOException ioe) { LOG.warn("Call failed on IOException", ioe); ResponseConverter.setControllerException(controller, ioe); } if (callback != null) { callback.run(response); } }
@Override public void dropTable(RpcController controller, DropTableRequest request, RpcCallback<DropTableResponse> done) { if(rmImpl != null) { try { rmImpl.dropTable(request.getTableName()); done.run(DropTableResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void getAbortedWriteTransactions(RpcController controller, GetAbortedWriteTransactionsRequest request, RpcCallback<GetAbortedWriteTransactionsResponse> done) { if(rmImpl != null) { try { rmImpl.getAbortedWriteTransactions(request.getTableName(), request.getColumnFamily()); done.run(GetAbortedWriteTransactionsResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void createTable(RpcController controller, CreateTableRequest request, RpcCallback<CreateTableResponse> done) { if(rmImpl != null) { try { rmImpl.createTable(request.getTableName(), request.getColumnFamiliesList()); done.run(CreateTableResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void commitWriteTransaction(RpcController controller, CommitWriteTransactionRequest request, RpcCallback<CommitWriteTransactionResponse> done) { if(rmImpl != null) { try { rmImpl.commitWriteTransaction(rpcConverter.convertTransaction(request.getTransaction())); done.run(CommitWriteTransactionResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void abortWriteTransaction(RpcController controller, AbortWriteTransactionRequest request, RpcCallback<AbortWriteTransactionResponse> done) { if(rmImpl != null) { try { rmImpl.abortWriteTransaction(rpcConverter.convertTransaction(request.getTransaction())); done.run(AbortWriteTransactionResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void keepAliveTransaction(RpcController controller, KeepAliveTransactionRequest request, RpcCallback<KeepAliveTransactionResponse> done) { if(rmImpl != null) { try { rmImpl.keepAlive(rpcConverter.convertTransaction(request.getTransaction())); done.run(KeepAliveTransactionResponse.newBuilder().build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void cleanupBulkLoad(RpcController controller, CleanupBulkLoadRequest request, RpcCallback<CleanupBulkLoadResponse> done) { try { List<BulkLoadObserver> bulkLoadObservers = getBulkLoadObservers(); if(bulkLoadObservers != null) { ObserverContext<RegionCoprocessorEnvironment> ctx = new ObserverContext<RegionCoprocessorEnvironment>(); ctx.prepare(env); for(BulkLoadObserver bulkLoadObserver : bulkLoadObservers) { bulkLoadObserver.preCleanupBulkLoad(ctx, request); } } fs.delete(new Path(request.getBulkToken()), true); done.run(CleanupBulkLoadResponse.newBuilder().build()); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } done.run(null); }
@Override public void timeseriesAggregate(RpcController controller, AggregateProtos.TimeSeriesAggregateRequest request, RpcCallback<AggregateProtos.AggregateResult> done) { AggregateResult result = null; try { result = this.aggregate(ProtoBufConverter.fromPBEntityDefinition(request.getEntityDefinition()), ProtoBufConverter.fromPBScan(request.getScan()), ProtoBufConverter.fromPBStringList(request.getGroupbyFieldsList()), ProtoBufConverter.fromPBByteArrayList(request.getAggregateFuncTypesList()), ProtoBufConverter.fromPBStringList(request.getAggregatedFieldsList()), request.getStartTime(), request.getEndTime(), request.getIntervalMin() ); } catch (IOException e) { LOG.error("Failed to convert result to PB-based message", e); ResponseConverter.setControllerException(controller, e); } try { done.run(ProtoBufConverter.toPBAggregateResult(result)); } catch (IOException e) { LOG.error("Failed to convert result to PB-based message", e); ResponseConverter.setControllerException(controller, e); } }
@Override public void aggregate(RpcController controller, AggregateProtos.AggregateRequest request, RpcCallback<AggregateProtos.AggregateResult> done) { AggregateResult result = null; try { result = this.aggregate(ProtoBufConverter.fromPBEntityDefinition(request.getEntityDefinition()), ProtoBufConverter.fromPBScan(request.getScan()), ProtoBufConverter.fromPBStringList(request.getGroupbyFieldsList()), ProtoBufConverter.fromPBByteArrayList(request.getAggregateFuncTypesList()), ProtoBufConverter.fromPBStringList(request.getAggregatedFieldsList()) ); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } try { done.run(ProtoBufConverter.toPBAggregateResult(result)); } catch (IOException e) { throw new RuntimeException("Failed to convert result to PB-based message", e); } }
@Override public void aggregate(RpcController controller, AggregateProtos.AggregateRequest request, RpcCallback<AggregateProtos.AggregateResult> done) { AggregateResult result = null; try { result = this.aggregate(ProtoBufConverter.fromPBEntityDefinition(request.getEntityDefinition()), ProtoBufConverter.fromPBScan(request.getScan()), ProtoBufConverter.fromPBStringList(request.getGroupbyFieldsList()), ProtoBufConverter.fromPBByteArrayList(request.getAggregateFuncTypesList()), ProtoBufConverter.fromPBStringList(request.getAggregatedFieldsList()) ); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } try { done.run(ProtoBufConverter.toPBAggregateResult(result)); } catch (IOException e) { throw new RuntimeException("Failed to convert result to PB-based message",e); } }
@Override public void prepareBulkLoad(RpcController controller, PrepareBulkLoadRequest request, RpcCallback<PrepareBulkLoadResponse> done){ try { List<BulkLoadObserver> bulkLoadObservers = getBulkLoadObservers(); if(bulkLoadObservers != null) { ObserverContext<RegionCoprocessorEnvironment> ctx = new ObserverContext<RegionCoprocessorEnvironment>(); ctx.prepare(env); for(BulkLoadObserver bulkLoadObserver : bulkLoadObservers) { bulkLoadObserver.prePrepareBulkLoad(ctx, request); } } String bulkToken = createStagingDir(baseStagingDir, getActiveUser(), ProtobufUtil.toTableName(request.getTableName())).toString(); done.run(PrepareBulkLoadResponse.newBuilder().setBulkToken(bulkToken).build()); } catch (IOException e) { ResponseConverter.setControllerException(controller, e); } done.run(null); }
@Override public void createSnapshot(RpcController controller, CreateSnapshotRequest request, RpcCallback<CreateSnapshotResponse> done) { if(rmImpl != null) { try { TableSnapshot snapshot; if(request.hasRevision()) { snapshot = rmImpl.createSnapshot(request.getTableName(), request.getRevision()); } else { snapshot = rmImpl.createSnapshot(request.getTableName()); } done.run(CreateSnapshotResponse.newBuilder() .setTableSnapshot(rpcConverter.convertTableSnapshot(snapshot)).build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }
@Override public void beginWriteTransaction(RpcController controller, BeginWriteTransactionRequest request, RpcCallback<BeginWriteTransactionResponse> done) { if(rmImpl != null) { try { Transaction transaction; if(request.hasKeepAlive()) { transaction = rmImpl.beginWriteTransaction(request.getTableName(), request.getColumnFamiliesList(), request.getKeepAlive()); } else { transaction = rmImpl.beginWriteTransaction(request.getTableName(), request.getColumnFamiliesList()); } done.run(BeginWriteTransactionResponse.newBuilder() .setTransaction(rpcConverter.convertTransaction(transaction)).build()); } catch(IOException e) { ResponseConverter.setControllerException(controller, e); } } }