import android.os.AsyncTask;

public class Test {

    private static Object source(String kind) {
        return null;
    }

    private static void sink(Object o) {}

    public void test() {
        TestAsyncTask t = new TestAsyncTask();
        t.execute(source("execute"), null);
        t.executeOnExecutor(null, source("executeOnExecutor"), null);
        SafeAsyncTask t2 = new SafeAsyncTask();
        t2.execute("safe");
        TestConstructorTask t3 = new TestConstructorTask(source("constructor"), "safe");
        t3.execute(source("params"));
    }

    private class TestAsyncTask extends AsyncTask<Object, Object, Object> {
        @Override
        protected Object doInBackground(Object... params) {
            sink(params[0]); // $ hasTaintFlow=execute hasTaintFlow=executeOnExecutor
            sink(params[1]); // $ SPURIOUS: hasTaintFlow=execute hasTaintFlow=executeOnExecutor
            return null;
        }
    }

    private class SafeAsyncTask extends AsyncTask<Object, Object, Object> {
        @Override
        protected Object doInBackground(Object... params) {
            sink(params[0]); // Safe
            return null;
        }
    }

    class TestConstructorTask extends AsyncTask<Object, Object, Object> {
        private Object field;
        private Object safeField;

        public TestConstructorTask(Object field, Object safeField) {
            this.field = field;
            this.safeField = safeField;
        }

        @Override
        protected Object doInBackground(Object... params) {
            sink(params[0]); // $ hasTaintFlow=params
            sink(field); // $ hasValueFlow=constructor
            sink(safeField); // Safe
            return params[0];
        }

        @Override
        protected void onPostExecute(Object param) {
            sink(param); // $ hasTaintFlow=params
            sink(field); // $ hasValueFlow=constructor
            sink(safeField); // Safe
        }

    }
}

@@ -1174,16 +1174,23 @@
  %7D%0A%0A    
+static 
 class Te
@@ -1314,16 +1314,115 @@
 feField;
+%0A        private Object initField;%0A        %7B%0A            initField = Test.source(%22init%22);%0A        %7D
 %0A%0A      
@@ -1783,32 +1783,84 @@
 Field); // Safe%0A
+            sink(initField); // $ hasValueFlow=init%0A
             retu
@@ -2089,32 +2089,84 @@
 Field); // Safe%0A
+            sink(initField); // $ hasValueFlow=init%0A
         %7D%0A%0A    %7D

Add test for initializer method