JAVA mail MimeUtility.quote 函数抛出 NULL Pointer Exception.
来源:互联网 发布:犀利软件 编辑:程序博客网 时间:2024/06/06 00:07
帐 前卒今天遇到 JAVA mail MimeUtility.quote 函数抛出 NULL Pointer Exception 问题。找这个问题的确废了一番功夫:看栈信息,看源码,debug. 然后终于发现了问题的原因:
在Email里MimeBody中有这样一行:
Content-Type: application/octet-stream; name=""
这句话相当的神奇,让JavaMail抛出NPE. 但是这个问题是JavaMail这个库有问题,还是这封email没有遵循rfc规范?
于是帐前 卒 找了一下rfc文档,在rfc 2045中找到了5.1章,发现如下内容:
value := token / quoted-stringtoken := 1*<any (US-ASCII) CHAR except SPACE, CTLs, or tspecials>tspecials := "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "=" ; Must be in quoted-string, ; to use within parameter values
这是语法定义。这里说,对于Content-Type header域的词法定义中,明确写了,不应该为空。那么JavaMail在这里发现为空抛出Exception也是理所应当。所以错在发信方。看到这里,那封不能被很好解析的邮件该怎么丢弃就怎么丢弃吧。然后把这个bug反馈给发信方。所以软件开发...还是需要时不时的看看rfc呀...
另外上面的问题是在获取Multipart p后,调用p.getContent(); 或者 p.getDataHandler()或者 p.getInputStream()方法时,抛出的Null Pointer Exception.
- JAVA mail MimeUtility.quote 函数抛出 NULL Pointer Exception.
- javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226)
- 【android】null pointer exception
- null pointer exception
- 在Java中避免空指针异常(Null Pointer Exception)
- 在Java中避免空指针异常(Null Pointer Exception)
- 在Java中避免空指针异常(Null Pointer Exception)
- Null Pointer and Cast Exception
- Jbpm发邮件抛出Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
- Myeclipse+Aptana显示Null Pointer Exception
- error: null pointer exception in JaxWsDynamicClientFactory
- 字符串 比较 避免 null pointer exception
- eclipse部署网站时出现null pointer exception的解决方法
- 关于unable to instantiate activity componentinfo - Null Pointer Exception
- 抛出exception
- [Java] throw Exception 声名抛出异常
- null pointer
- 20161227 spring quartz 定时调度任务 服务 null pointer Exception 解决办法
- 我的第一个ssh开发的系统,我们学院的毕设管理系统。
- _INTSIZEOF(n)
- Oracle Data Pump使用范例及部分注意事项(expdp/impdp)
- PMP从入门到精通
- HDU1026:Ignatius and the Princess I(BFS)
- JAVA mail MimeUtility.quote 函数抛出 NULL Pointer Exception.
- 收藏的网页--网站HTML-CSS--js
- 手把手教你做iOS的soap应用(webservice)
- C程序设计语言 Exercise 2-10
- 基本排序之冒泡排序
- 离职原因及手续办理
- 你必须知道的javascript(易忘语法)
- NYOJ 685 查找字符串
- UVA 10684 The jackpot