手头的不少应用都开始往JDK7上迁移,JDK升级后build,test遇到了不少小问题,在这里一一列举分析一下:java
Unicode支持升级算法
JDK7支持Unicode6.0,支持了不少新的字符。以前程序中为一个替换非法字符的函数写了unit test,测试用例中本来的非法字符在JDK7的函数Character.isDefined()返回结果为true,致使了测试用例的失败。安全
反射机制改变致使JUnit test失败ide
JUnit依赖java自身的反射机制,因为JDK7反射机制的变化,获取类方法时不是顺序读取或者按照字母排序来获取,而是随机的。若是以前JUnit tests写得不够完善,方法间存在依赖或者teardown没有清理干净,会因为这个缘由致使测试有时不过。可是从JUnit4.11开始增长了指定测试方法执行顺序的特性,能够经过增长annotation来指定test cases的执行顺序。总的来讲,JUnit test之间理论上不该该存在依赖,JDK7还真的能够帮咱们纠正一些test case在设计上的错误。
函数
SSL证书检验更加严格测试
以前使用1.7.0_25就碰到SSL通讯的问题,此次使用1.7.0_45又碰到一个新的问题,不得不说JDK在安全性上下的功夫是愈来愈深了。第一点,在使用openssl来生成自签名证书,配置文件openssl.cnf中必须定义KeyUsage。第二点,在使用1.7.0_31之后的版本,增长了一个对于keysize大小的验证,具体能够看%JAVA_HOME%/jre/lib/security/java.securityui
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
可见MD2以及keysize小于1024的RSA算法都会被禁止,用户能够直接注释掉或者修改策略。
设计
用JDK7安装Weblogic可能遇到的问题code
详见个人另一篇博文http://jupiterbee.blog.51cto.com/3364619/1289622blog