@@ -0,0 +1,1395 @@
+package com.ctrip.platform.dal.dao.task;%0D%0A%0D%0Aimport java.util.concurrent.Callable;%0D%0A%0D%0Aimport com.ctrip.platform.dal.dao.DalClientFactory;%0D%0Aimport com.ctrip.platform.dal.dao.client.DalLogger;%0D%0Aimport com.ctrip.platform.dal.dao.client.LogContext;%0D%0Aimport com.ctrip.platform.dal.dao.client.LogEntry;%0D%0Aimport com.ctrip.platform.dal.exceptions.DalException;%0D%0A%0D%0Apublic class RequestTaskWrapper%3CT%3E implements Callable%3CT%3E %7B%0D%0A    private DalLogger logger = DalClientFactory.getDalLogger();%0D%0A    private String shard;%0D%0A    private Callable%3CT%3E task;%0D%0A    private LogContext logContext;%0D%0A    %0D%0A    public RequestTaskWrapper(String shard, Callable%3CT%3E task, LogContext logContext) %7B%0D%0A        this.shard = shard;%0D%0A        this.task = task;%0D%0A        this.logContext = logContext;%0D%0A    %7D%0D%0A    %0D%0A    @Override%0D%0A    public T call() throws Exception %7B%0D%0A        Throwable error = null;%0D%0A        T result = null;%0D%0A        %0D%0A        logger.startTask(logContext, shard);%0D%0A        %0D%0A        try %7B%0D%0A            LogEntry.populateCurrentCaller(logContext.getCaller());%0D%0A            %0D%0A            result = task.call();%0D%0A            %0D%0A            LogEntry.clearCurrentCaller();%0D%0A        %7D catch (Throwable e) %7B%0D%0A            error = e;%0D%0A        %7D%0D%0A%0D%0A        logger.endTask(logContext, shard, error);%0D%0A        %0D%0A        if(error != null)%0D%0A            throw DalException.wrap(error);%0D%0A        %0D%0A        return result;%0D%0A    %7D%0D%0A%7D%0D%0A

add missing