记录一个和很诡异的BUG_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 记录一个和很诡异的BUG

记录一个和很诡异的BUG

 2016/8/4 5:32:41  alyouge  程序员俱乐部  我要评论(0)
  • 摘要:Map<String,Object>map=Maps.newHashMap();if(key.equals(SignUtils.getKey(url))){try{Stringpath=request.getSession().getServletContext().getRealPath(url);String[]fv=path.split("\\.");FilenewFile=newFile(fv[0]+"_sign.png");//用下面三行代码生成的图片有延迟
  • 标签:一个
class="java" name="code">
Map<String, Object> map = Maps.newHashMap();
        if (key.equals(SignUtils.getKey(url))) {
            try {
                String path = request.getSession().getServletContext().getRealPath(url);
                String[] fv = path.split("\\.");
                File newFile = new File(fv[0]+"_sign.png");
//              用下面三行代码 生成的图片有延迟,就是生成完成几秒后才能访问,具体原因不明白
//                String newUrl = fv[0]+"_sign.png";
//                String newFilePath = request.getSession().getServletContext().getRealPath(newUrl);//fv[0]+"_sign.png";
//                File newFile = new File(newFilePath);
                File oldFile = new File(request.getSession().getServletContext().getRealPath(url));
                InputStream in = new FileInputStream(oldFile);
                byte[] b = IOUtils.toByteArray(in);
                b = ImageUtils.transferAlpha(ImageUtils.ByteToBufferedImage(b), 150, x, y, width, height, rotate);
                Files.write(b,newFile);

                map.put("result", true);
                map.put("url", SignUtils.getUrl()+newFile.getName());
            } catch (Exception e) {
                e.printStackTrace();
                map.put("result", false);
                map.put("message", "操作失败:"+e.getMessage());
            }
        } else {
            map.put("result", false);
            map.put("message", "非法操作");
        }
        response.flushBuffer();
        return map;

这个程序是把一个web目录下的图片进行抠图处理,然进行另外命名保存处理,然后返回新的图片的路径,结果用注释掉的三行马上访问就是访问不到,换一种写法就好了。
请看注释,其实两个获取的绝对路径是一模一样的,但是第二个(注释掉的代码)就是有延迟,要三四秒后才能访问到
发表评论
用户名: 匿名