1. var ThreadPoolExecutor = Java.use("java.util.concurrent.ThreadPoolExecutor");
    2. ThreadPoolExecutor.execute.implementation = function (a) {
    3. showStacks();
    4. console.log("ThreadPoolExecutor ============================================== ");
    5. return this.execute(a);
    6. }
    7. ThreadPoolExecutor.submit.overload('java.lang.Runnable').implementation = function (a) {
    8. showStacks();
    9. console.log("ThreadPoolExecutor ============================================== ");
    10. return this.submit(a);
    11. }
    12. ThreadPoolExecutor.submit.overload('java.util.concurrent.Callable').implementation = function (a) {
    13. showStacks();
    14. console.log("ThreadPoolExecutor ============================================== ");
    15. return this.submit(a);
    16. }
    17. ThreadPoolExecutor.submit.overload('java.lang.Runnable', 'java.lang.Object').implementation = function (a, b) {
    18. showStacks();
    19. console.log("ThreadPoolExecutor ============================================== ");
    20. return this.submit(a, b);
    21. }