You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Laurent Kloetzer (JIRA)" <ji...@apache.org> on 2012/05/03 13:00:49 UTC

[jira] [Created] (BEANUTILS-412) Default value is 0 instead of null for Integer properties

Laurent Kloetzer created BEANUTILS-412:
------------------------------------------

             Summary: Default value is 0 instead of null for Integer properties
                 Key: BEANUTILS-412
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-412
             Project: Commons BeanUtils
          Issue Type: Bug
          Components: Locale BeanUtils / Converters
    Affects Versions: 1.8.3
            Reporter: Laurent Kloetzer
             Fix For: 1.8.4


See the following test to see the problem and its solution.

public class Test {

	/**
	 * @param args
	 * @throws InvocationTargetException
	 * @throws IllegalAccessException
	 */
	public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
		test(false);
		test(true);

	}

	protected static void test(boolean withFix) throws IllegalAccessException, InvocationTargetException {
		Thing t1 = new Thing();
		t1.valInt = 1;
		t1.valInteger = 2;
		Thing t2 = new Thing();
		t2.valInt = 0;
		t2.valInteger = null;
		Thing t3 = new Thing();
		Thing t4 = new Thing();

		System.out.println(t2);
		System.out.println(t1);

		if (withFix) {
			IntegerConverter ic = new IntegerConverter(null);
			BeanUtilsBean.getInstance().getConvertUtils().register(ic, Integer.class);
		}

		BeanUtilsBean.getInstance().copyProperties(t3, t1);
		BeanUtilsBean.getInstance().copyProperties(t4, t2);

		System.out.println(t4);
		System.out.println(t3);
	}

	public static class Thing {
		private int valInt;
		private Integer valInteger;

		@Override
		public String toString() {

			return ToStringBuilder.reflectionToString(this);
		}

		public int getValInt() {
			return valInt;
		}

		public void setValInt(int valInt) {
			this.valInt = valInt;
		}

		public Integer getValInteger() {
			return valInteger;
		}

		public void setValInteger(Integer valInteger) {
			this.valInteger = valInteger;
		}

	}

}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (BEANUTILS-412) Default value is 0 instead of null for Integer properties

Posted by "Laurent Kloetzer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEANUTILS-412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Laurent Kloetzer updated BEANUTILS-412:
---------------------------------------

    Description: 
See the following test to see the problem and its solution.
{code}
public class Test {

	/**
	 * @param args
	 * @throws InvocationTargetException
	 * @throws IllegalAccessException
	 */
	public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
		test(false);
		test(true);

	}

	protected static void test(boolean withFix) throws IllegalAccessException, InvocationTargetException {
		Thing t1 = new Thing();
		t1.valInt = 1;
		t1.valInteger = 2;
		Thing t2 = new Thing();
		t2.valInt = 0;
		t2.valInteger = null;
		Thing t3 = new Thing();
		Thing t4 = new Thing();

		System.out.println(t2);
		System.out.println(t1);

		if (withFix) {
			IntegerConverter ic = new IntegerConverter(null);
			BeanUtilsBean.getInstance().getConvertUtils().register(ic, Integer.class);
		}

		BeanUtilsBean.getInstance().copyProperties(t3, t1);
		BeanUtilsBean.getInstance().copyProperties(t4, t2);

		System.out.println(t4);
		System.out.println(t3);
	}

	public static class Thing {
		private int valInt;
		private Integer valInteger;

		@Override
		public String toString() {

			return ToStringBuilder.reflectionToString(this);
		}

		public int getValInt() {
			return valInt;
		}

		public void setValInt(int valInt) {
			this.valInt = valInt;
		}

		public Integer getValInteger() {
			return valInteger;
		}

		public void setValInteger(Integer valInteger) {
			this.valInteger = valInteger;
		}

	}

}
{code}

  was:
See the following test to see the problem and its solution.

public class Test {

	/**
	 * @param args
	 * @throws InvocationTargetException
	 * @throws IllegalAccessException
	 */
	public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
		test(false);
		test(true);

	}

	protected static void test(boolean withFix) throws IllegalAccessException, InvocationTargetException {
		Thing t1 = new Thing();
		t1.valInt = 1;
		t1.valInteger = 2;
		Thing t2 = new Thing();
		t2.valInt = 0;
		t2.valInteger = null;
		Thing t3 = new Thing();
		Thing t4 = new Thing();

		System.out.println(t2);
		System.out.println(t1);

		if (withFix) {
			IntegerConverter ic = new IntegerConverter(null);
			BeanUtilsBean.getInstance().getConvertUtils().register(ic, Integer.class);
		}

		BeanUtilsBean.getInstance().copyProperties(t3, t1);
		BeanUtilsBean.getInstance().copyProperties(t4, t2);

		System.out.println(t4);
		System.out.println(t3);
	}

	public static class Thing {
		private int valInt;
		private Integer valInteger;

		@Override
		public String toString() {

			return ToStringBuilder.reflectionToString(this);
		}

		public int getValInt() {
			return valInt;
		}

		public void setValInt(int valInt) {
			this.valInt = valInt;
		}

		public Integer getValInteger() {
			return valInteger;
		}

		public void setValInteger(Integer valInteger) {
			this.valInteger = valInteger;
		}

	}

}

    
> Default value is 0 instead of null for Integer properties
> ---------------------------------------------------------
>
>                 Key: BEANUTILS-412
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-412
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Locale BeanUtils / Converters
>    Affects Versions: 1.8.3
>            Reporter: Laurent Kloetzer
>             Fix For: 1.8.4
>
>
> See the following test to see the problem and its solution.
> {code}
> public class Test {
> 	/**
> 	 * @param args
> 	 * @throws InvocationTargetException
> 	 * @throws IllegalAccessException
> 	 */
> 	public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
> 		test(false);
> 		test(true);
> 	}
> 	protected static void test(boolean withFix) throws IllegalAccessException, InvocationTargetException {
> 		Thing t1 = new Thing();
> 		t1.valInt = 1;
> 		t1.valInteger = 2;
> 		Thing t2 = new Thing();
> 		t2.valInt = 0;
> 		t2.valInteger = null;
> 		Thing t3 = new Thing();
> 		Thing t4 = new Thing();
> 		System.out.println(t2);
> 		System.out.println(t1);
> 		if (withFix) {
> 			IntegerConverter ic = new IntegerConverter(null);
> 			BeanUtilsBean.getInstance().getConvertUtils().register(ic, Integer.class);
> 		}
> 		BeanUtilsBean.getInstance().copyProperties(t3, t1);
> 		BeanUtilsBean.getInstance().copyProperties(t4, t2);
> 		System.out.println(t4);
> 		System.out.println(t3);
> 	}
> 	public static class Thing {
> 		private int valInt;
> 		private Integer valInteger;
> 		@Override
> 		public String toString() {
> 			return ToStringBuilder.reflectionToString(this);
> 		}
> 		public int getValInt() {
> 			return valInt;
> 		}
> 		public void setValInt(int valInt) {
> 			this.valInt = valInt;
> 		}
> 		public Integer getValInteger() {
> 			return valInteger;
> 		}
> 		public void setValInteger(Integer valInteger) {
> 			this.valInteger = valInteger;
> 		}
> 	}
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira