test_class.declarator: mFailureHandler
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private FailureHandler mFailureHandler;
test_class.type: FailureHandler
test_class.var_name: mFailureHandler
test_class.declarator: mMessage
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Message mMessage;
test_class.type: Message
test_class.var_name: mMessage
test_class.declarator: mException
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ActorInvokeException mException;
test_class.type: ActorInvokeException
test_class.var_name: mException
test_class.declarator: mMessageCaptor
test_class.modifier: @Captor
      private
test_class.original_string: @Captor
      private ArgumentCaptor<android.os.Message> mMessageCaptor;
test_class.type: ArgumentCaptor<android.os.Message>
test_class.var_name: mMessageCaptor
test_class.declarator: mTimeoutCaptor
test_class.modifier: @Captor
      private
test_class.original_string: @Captor
      private ArgumentCaptor<Long> mTimeoutCaptor;
test_class.type: ArgumentCaptor<Long>
test_class.var_name: mTimeoutCaptor
test_class.declarator: mImpl = new Object()
test_class.modifier: private final
test_class.original_string: private final Object mImpl = new Object();
test_class.type: Object
test_class.var_name: mImpl
test_class.file: actors-library/src/test/java/com/truecaller/androidactors/ActorHandlerBaseTest.java
test_class.identifier: ActorHandlerBaseTest
test_case.body: @Test
      public void handleMessage_wakeLockAcquireRelease_methodTransaction() {
          PowerManager pm = (PowerManager) ShadowApplication.getInstance().getApplicationContext().getSystemService(Context.POWER_SERVICE);
          final PowerManager.WakeLock wakeLock = Shadows.shadowOf(pm).newWakeLock(0, "test-wakelock");
          ActorHandlerBase handler = createHandler(ActorHandlerBase.NO_DELAY, wakeLock);
  
          Transaction transaction = Transaction.<Object>obtain(mImpl, mMessage, mFailureHandler);
          android.os.Message message = android.os.Message.obtain(handler, ActorHandlerBase.MSG_TRANSACTION,
                  10, 0, transaction);
  
          handler.handleMessage(message);
  
          Assert.assertSame(wakeLock, ShadowPowerManager.getLatestWakeLock());
          Assert.assertEquals(false, wakeLock.isHeld());
      }
test_case.class_method_signature: ActorHandlerBaseTest.handleMessage_wakeLockAcquireRelease_methodTransaction()
test_case.full_signature: @Test public void handleMessage_wakeLockAcquireRelease_methodTransaction()
test_case.identifier: handleMessage_wakeLockAcquireRelease_methodTransaction
test_case.invocations: getSystemService getApplicationContext getInstance newWakeLock shadowOf createHandler obtain obtain handleMessage assertSame getLatestWakeLock assertEquals isHeld
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void handleMessage_wakeLockAcquireRelease_methodTransaction()
focal_class.declarator: NO_DELAY = -1L
focal_class.modifier: static final
focal_class.original_string: static final long NO_DELAY = -1L;
focal_class.type: long
focal_class.var_name: NO_DELAY
focal_class.declarator: MSG_TRANSACTION = 1
focal_class.modifier: @VisibleForTesting
      /* package */ static final
focal_class.original_string: @VisibleForTesting
      /* package */ static final int MSG_TRANSACTION = 1;
focal_class.type: int
focal_class.var_name: MSG_TRANSACTION
focal_class.declarator: MSG_POISON_PILL = 2
focal_class.modifier: @VisibleForTesting
      /* package */ static final
focal_class.original_string: @VisibleForTesting
      /* package */ static final int MSG_POISON_PILL = 2;
focal_class.type: int
focal_class.var_name: MSG_POISON_PILL
focal_class.declarator: mWakeLock
focal_class.modifier: @Nullable
      private final
focal_class.original_string: @Nullable
      private final PowerManager.WakeLock mWakeLock;
focal_class.type: PowerManager.WakeLock
focal_class.var_name: mWakeLock
focal_class.declarator: mStopDelay
focal_class.modifier: private final
focal_class.original_string: private final long mStopDelay;
focal_class.type: long
focal_class.var_name: mStopDelay
focal_class.declarator: mLastId = 0
focal_class.modifier: private volatile
focal_class.original_string: private volatile int mLastId = 0;
focal_class.type: int
focal_class.var_name: mLastId
focal_class.file: actors-library/src/main/java/com/truecaller/androidactors/ActorHandlerBase.java
focal_class.identifier: ActorHandlerBase
focal_class.class_method_signature: ActorHandlerBase.ActorHandlerBase(Looper looper, long stopDelay, @Nullable PowerManager.WakeLock wakeLock)
focal_class.full_signature:   ActorHandlerBase(Looper looper, long stopDelay, @Nullable PowerManager.WakeLock wakeLock)
focal_class.identifier: ActorHandlerBase
focal_class.parameters: (Looper looper, long stopDelay, @Nullable PowerManager.WakeLock wakeLock)
focal_class.signature:  ActorHandlerBase(Looper looper, long stopDelay, @Nullable PowerManager.WakeLock wakeLock)
focal_class.class_method_signature: ActorHandlerBase.sendTransaction(@NonNull Transaction transaction)
focal_class.full_signature:  boolean sendTransaction(@NonNull Transaction transaction)
focal_class.identifier: sendTransaction
focal_class.parameters: (@NonNull Transaction transaction)
focal_class.return: boolean
focal_class.signature: boolean sendTransaction(@NonNull Transaction transaction)
focal_class.class_method_signature: ActorHandlerBase.handleMessage(@NonNull Message msg)
focal_class.full_signature: @Override public void handleMessage(@NonNull Message msg)
focal_class.identifier: handleMessage
focal_class.modifiers: @Override public
focal_class.parameters: (@NonNull Message msg)
focal_class.return: void
focal_class.signature: void handleMessage(@NonNull Message msg)
focal_class.class_method_signature: ActorHandlerBase.handleTransaction(@NonNull Transaction transaction, int id)
focal_class.full_signature: @SuppressWarnings("unchecked") private void handleTransaction(@NonNull Transaction transaction, int id)
focal_class.identifier: handleTransaction
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: (@NonNull Transaction transaction, int id)
focal_class.return: void
focal_class.signature: void handleTransaction(@NonNull Transaction transaction, int id)
focal_class.class_method_signature: ActorHandlerBase.handlePoisonPill(int id)
focal_class.full_signature: private void handlePoisonPill(int id)
focal_class.identifier: handlePoisonPill
focal_class.modifiers: private
focal_class.parameters: (int id)
focal_class.return: void
focal_class.signature: void handlePoisonPill(int id)
focal_class.class_method_signature: ActorHandlerBase.acquireWakelock()
focal_class.full_signature: private void acquireWakelock()
focal_class.identifier: acquireWakelock
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void acquireWakelock()
focal_class.class_method_signature: ActorHandlerBase.releaseWakelock()
focal_class.full_signature: private void releaseWakelock()
focal_class.identifier: releaseWakelock
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void releaseWakelock()
focal_class.class_method_signature: ActorHandlerBase.stopThread()
focal_class.full_signature: protected abstract void stopThread()
focal_class.identifier: stopThread
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void stopThread()
focal_class.superclass: extends Handler
focal_method.body: @Override
      public void handleMessage(@NonNull Message msg) {
          switch (msg.what) {
              case MSG_TRANSACTION:
                  handleTransaction((Transaction) msg.obj, msg.arg1);
                  break;
              case MSG_POISON_PILL:
                  handlePoisonPill(msg.arg1);
                  break;
          }
      }
focal_method.class_method_signature: ActorHandlerBase.handleMessage(@NonNull Message msg)
focal_method.full_signature: @Override public void handleMessage(@NonNull Message msg)
focal_method.identifier: handleMessage
focal_method.invocations: handleTransaction handlePoisonPill
focal_method.modifiers: @Override public
focal_method.parameters: (@NonNull Message msg)
focal_method.return: void
focal_method.signature: void handleMessage(@NonNull Message msg)