Commons BeanUtils 1.8.3及以下版本的BUG

 在工程做如下类似使用时,系统会报null指针异常,这个错误还仅仅咋开发环境有,仿真环境,和正式环境都正常。

import org.apache.commons.beanutils.ConvertUtils;

public class T {

	/**
	 * @param args
	 * @author Ken_xu
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Object obj = ConvertUtils.convert("1", null);
		System.out.println(obj);
	}

}

 

Exception in thread "main" java.lang.NullPointerException
 at org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:418)
 at org.apache.commons.beanutils.ConvertUtils.convert(ConvertUtils.java:217)
 at T.main(T.java:11)

 

经过分析源代码发现

Object org.apache.commons.beanutils.ConvertUtilsBean.convert(String value, Class clazz)

这个类的这个方法的源代码如下

    public Object convert(String value, Class clazz) {

        if (log.isDebugEnabled()) {
            log.debug("Convert string '" + value + "' to class '" +
                      clazz.getName() + "'");
        }
        Converter converter = lookup(clazz);
        if (converter == null) {
            converter = lookup(String.class);
        }
        if (log.isTraceEnabled()) {
            log.trace("  Using converter " + converter);
        }
        return (converter.convert(clazz, value));

    }

 

分析后认为是由于当前工程使用了log4j实现,并且设置了全局debug级别,最终导致报异常。

解决方法如下:
在log4j.properties配置文件中增加如下代码

	#屏蔽BUG org.apache.commons.beanutils.ConvertUtilsBean.convert(String value, Class clazz)
	log4j.logger.org.apache.commons.beanutils=INFO

 

 

时间: 2024-11-25 16:05:02

Commons BeanUtils 1.8.3及以下版本的BUG的相关文章

图表控件-求推荐免费的Jquery图表,现在用的jqplot不更新了,最后一个版本的bug正好跟我项目有关

问题描述 求推荐免费的Jquery图表,现在用的jqplot不更新了,最后一个版本的bug正好跟我项目有关 如题,jqplot的1.08版,再说明里开发者已经说了,有个fillTozero颜色异常问题,之前的版本我试了也有,就这个正好跟我的项目冲突,柱状图负数坐表使用fillToZero后,Y周负值颜色设置异常,正值没问题,取消fillToZero后颜色正常,但是我这是对比图,必须有0坐标以上和以下部分,有没有更完善好用的图表控件 解决方案 echart 或者 highchart .都是基于jq

commons.beanutils.ConversionException: No value specified

问题描述 库里面的字段是Date类型:leaveDate字段数据传输的值是:Date类型:(leaveD字段)当传入的值为null时,BeanUtils.copyProperties(leaveDate,leave)时报错,Novaluespecified....这个怎么解决,最好有一个类型转换的例子,网上相关资料查过,但不很明白 解决方案 解决方案二:你定义成日期类型,传null肯定有问题.看一看你传的date导入时用的是哪个包里的,应该用java.sql.Date

Java工具类之Apache的Commons Lang和BeanUtils

此文真不该转,不是内容不好,而是转完之后的格式让人看着头疼. 需要的兄弟,猛戳下面标题跳到原文去看吧,给自已一个赏心悦目的阅读体验. Java工具类之Apache的Commons Lang和BeanUtils javacommonsLangBeanUtils  Apache Commons包估计是Java中使用最广发的工具包了,很多框架都依赖于这组工具包中的一部分,它提供了我们常用的一些编程需要,但是JDK没能提供的机能,最大化的减少重复代码的编写. http://commons.apache.

对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀

对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀 性能对比: BeanCopier > PropertyUtils > BeanUtils. 其中BeanCopier的性能高出另外两个100数量级. BeanCopier使用可参考: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp36 对象拷贝的应用现状简介: 业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最

java-框架-apache.commons.*工具

Apache Commons类库 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默默无闻的.在我看来,成功而默默无闻的那些框架值得我们格外的尊敬和关注,Jakarta Commons就是这样的一个框架.如果你至少参与了一个中型规模的Java项目,那么我想有超过一大半的机会你都接触和使用到了Jakarta Commons,不管你自己有没有察觉.就我所知,除了Apache Jakarta其他许多开源框架之外,不少所谓的商业框架其实内部有

BeanUtils Exception 之 FastHashMap

这里仅仅是为了记录一件十分奇怪的事情,在使用BeanUtils的过程中,所有的依赖包都添加了, common logging common collections ··· 在为boolean 这种基本的数据类型添加Property的时候,然而还是出现了: java.lang.ClassNotFoundException: org.apache.commons.collections.FastHashMap 然后我就开始了Bug寻找之路,如下. 第一步 一开始我以为是转换类没有做好,然后尝试着在其

用组件beanutils,dbutils简化JDBC操作

    虽然现在出现了很多ORM框架,可是还是有很多朋友也许还在使用JDBC,就像我现在一样,除了学习的时候在使用Hibernate.Spring类似这些优秀的框架,工作时一直都在使用JDBC.本文就简单介绍一下利用Jakarta Commons旗下beanutils.dbutils简化JDBC数据库操作,以抛砖引玉,希望对像我一样在使用JDBC的朋友有所帮助.     下面就分两部分简单介绍beanutils.dbutils在基于JDBC API数据库存取操作中的运用.第一部分显介绍beanu

java-类库-Apache Commons

   Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍.   组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库

Apache Commons 工具集使用简介

pache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍.文中用了很多网上现成的东西,我只是做了一个汇总整理. 一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装. 使用示例:功能有很多,网站上有详细介