@@ -105,6 +105,10 @@ private void internalReadOnlyGuard() throws IOException {
105105 }
106106 }
107107
108+ private boolean isOperationOnUserTable (final ObserverContext <? extends RegionCoprocessorEnvironment > c ){
109+ return !c .getEnvironment ().getRegionInfo ().getTable ().isSystemTable ();
110+ }
111+
108112 @ Override
109113 public void start (CoprocessorEnvironment env ) throws IOException {
110114 if (env instanceof MasterCoprocessorEnvironment ) {
@@ -132,7 +136,9 @@ public Optional<RegionObserver> getRegionObserver() {
132136 @ Override
133137 public void preFlush (final ObserverContext <? extends RegionCoprocessorEnvironment > c ,
134138 FlushLifeCycleTracker tracker ) throws IOException {
135- internalReadOnlyGuard ();
139+ if (isOperationOnUserTable (c )){
140+ internalReadOnlyGuard ();
141+ }
136142 RegionObserver .super .preFlush (c , tracker );
137143 }
138144
@@ -200,53 +206,45 @@ public InternalScanner preCompact(ObserverContext<? extends RegionCoprocessorEnv
200206 @ Override
201207 public void prePut (ObserverContext <? extends RegionCoprocessorEnvironment > c , Put put ,
202208 WALEdit edit , Durability durability ) throws IOException {
203- TableName tableName = c .getEnvironment ().getRegionInfo ().getTable ();
204- if (tableName .isSystemTable ()) {
205- return ;
209+ if (isOperationOnUserTable (c )){
210+ internalReadOnlyGuard ();
206211 }
207- internalReadOnlyGuard ();
208212 RegionObserver .super .prePut (c , put , edit , durability );
209213 }
210214
211215 @ Override
212216 public void prePut (ObserverContext <? extends RegionCoprocessorEnvironment > c , Put put ,
213217 WALEdit edit ) throws IOException {
214- TableName tableName = c .getEnvironment ().getRegionInfo ().getTable ();
215- if (tableName .isSystemTable ()) {
216- return ;
218+ if (isOperationOnUserTable (c )){
219+ internalReadOnlyGuard ();
217220 }
218- internalReadOnlyGuard ();
219221 RegionObserver .super .prePut (c , put , edit );
220222 }
221223
222224 @ Override
223225 public void preDelete (ObserverContext <? extends RegionCoprocessorEnvironment > c , Delete delete ,
224226 WALEdit edit , Durability durability ) throws IOException {
225- if ( c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
226- return ;
227+ if ( isOperationOnUserTable ( c )) {
228+ internalReadOnlyGuard () ;
227229 }
228- internalReadOnlyGuard ();
229230 RegionObserver .super .preDelete (c , delete , edit , durability );
230231 }
231232
232233 @ Override
233234 public void preDelete (ObserverContext <? extends RegionCoprocessorEnvironment > c , Delete delete ,
234235 WALEdit edit ) throws IOException {
235- if ( c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
236- return ;
236+ if ( isOperationOnUserTable ( c )) {
237+ internalReadOnlyGuard () ;
237238 }
238- internalReadOnlyGuard ();
239239 RegionObserver .super .preDelete (c , delete , edit );
240240 }
241241
242242 @ Override
243243 public void preBatchMutate (ObserverContext <? extends RegionCoprocessorEnvironment > c ,
244244 MiniBatchOperationInProgress <Mutation > miniBatchOp ) throws IOException {
245- TableName tableName = c .getEnvironment ().getRegionInfo ().getTable ();
246- if (tableName .isSystemTable ()) {
247- return ;
245+ if (isOperationOnUserTable (c )){
246+ internalReadOnlyGuard ();
248247 }
249- internalReadOnlyGuard ();
250248 RegionObserver .super .preBatchMutate (c , miniBatchOp );
251249 }
252250
@@ -288,7 +286,7 @@ public boolean preCheckAndPutAfterRowLock(
288286 public boolean preCheckAndDelete (ObserverContext <? extends RegionCoprocessorEnvironment > c ,
289287 byte [] row , byte [] family , byte [] qualifier , CompareOperator op , ByteArrayComparable comparator ,
290288 Delete delete , boolean result ) throws IOException {
291- if (! c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
289+ if ( isOperationOnUserTable ( c )) {
292290 internalReadOnlyGuard ();
293291 }
294292 return RegionObserver .super .preCheckAndDelete (c , row , family , qualifier , op , comparator , delete ,
@@ -298,7 +296,7 @@ public boolean preCheckAndDelete(ObserverContext<? extends RegionCoprocessorEnvi
298296 @ Override
299297 public boolean preCheckAndDelete (ObserverContext <? extends RegionCoprocessorEnvironment > c ,
300298 byte [] row , Filter filter , Delete delete , boolean result ) throws IOException {
301- if (! c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
299+ if ( isOperationOnUserTable ( c )) {
302300 internalReadOnlyGuard ();
303301 }
304302 return RegionObserver .super .preCheckAndDelete (c , row , filter , delete , result );
@@ -309,7 +307,7 @@ public boolean preCheckAndDeleteAfterRowLock(
309307 ObserverContext <? extends RegionCoprocessorEnvironment > c , byte [] row , byte [] family ,
310308 byte [] qualifier , CompareOperator op , ByteArrayComparable comparator , Delete delete ,
311309 boolean result ) throws IOException {
312- if (! c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
310+ if ( isOperationOnUserTable ( c )) {
313311 internalReadOnlyGuard ();
314312 }
315313 return RegionObserver .super .preCheckAndDeleteAfterRowLock (c , row , family , qualifier , op ,
@@ -320,7 +318,7 @@ public boolean preCheckAndDeleteAfterRowLock(
320318 public boolean preCheckAndDeleteAfterRowLock (
321319 ObserverContext <? extends RegionCoprocessorEnvironment > c , byte [] row , Filter filter ,
322320 Delete delete , boolean result ) throws IOException {
323- if (! c . getEnvironment (). getRegionInfo (). getTable (). isSystemTable ()) {
321+ if ( isOperationOnUserTable ( c )) {
324322 internalReadOnlyGuard ();
325323 }
326324 return RegionObserver .super .preCheckAndDeleteAfterRowLock (c , row , filter , delete , result );
0 commit comments