Commit bb6cb008 authored by lgcareer's avatar lgcareer
Browse files

determine if the file exists in hdfs when read file

parent 4840ba33
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@ public enum Status {
    UDF_RESOURCE_SUFFIX_NOT_JAR(20009, "UDF resource suffix name must be jar"),
    HDFS_COPY_FAIL(20009, "hdfs copy {0} -> {1} fail"),
    RESOURCE_FILE_EXIST(20010, "resource file {0} already exists in hdfs,please delete it or change name!"),
    RESOURCE_FILE_NOT_EXIST(20011, "resource file {0} not exists in hdfs!"),



+15 −12
Original line number Diff line number Diff line
@@ -515,6 +515,7 @@ public class ResourcesService extends BaseService {
        String hdfsFileName = HadoopUtils.getHdfsFilename(tenantCode, resource.getAlias());
        logger.info("resource hdfs path is {} ", hdfsFileName);
        try {
            if(HadoopUtils.getInstance().exists(hdfsFileName)){
                List<String> content = HadoopUtils.getInstance().catFile(hdfsFileName, skipLineNum, limit);

                putMsg(result, Status.SUCCESS);
@@ -522,6 +523,11 @@ public class ResourcesService extends BaseService {
                map.put(ALIAS, resource.getAlias());
                map.put(CONTENT, StringUtils.join(content.toArray(), "\n"));
                result.setData(map);
            }else{
                logger.error("read file {} not exist in hdfs", hdfsFileName);
                putMsg(result, Status.RESOURCE_FILE_NOT_EXIST);
            }

        } catch (Exception e) {
            logger.error(String.format("Resource %s read failed", hdfsFileName), e);
            putMsg(result, Status.HDFS_OPERATION_ERROR);
@@ -565,17 +571,14 @@ public class ResourcesService extends BaseService {

        String name = fileName.trim() + "." + nameSuffix;

        //check file already exists
        Resource resource = resourcesMapper.queryResourceByNameAndType(name, type.ordinal());
        if (resource != null) {
            logger.error("resource {} has exist, can't recreate .", name);
            putMsg(result, Status.RESOURCE_EXIST);
        result = verifyResourceName(name,type,loginUser);
        if (!result.getCode().equals(Status.SUCCESS.getCode())) {
            return result;
        }

        // save data
        Date now = new Date();
        resource = new Resource(name,name,desc,loginUser.getId(),type,content.getBytes().length,now,now);
        Resource resource = new Resource(name,name,desc,loginUser.getId(),type,content.getBytes().length,now,now);

        resourcesMapper.insert(resource);