<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-25499</id>
	<title>Nabble - Commons - Issues</title>
	<updated>2008-07-09T06:35:33Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/Commons---Issues-f25499.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Commons---Issues-f25499.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-18361815</id>
	<title>[jira] Issue Comment Edited: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T06:35:33Z</published>
	<updated>2008-07-09T06:35:33Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612097#action_12612097&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612097#action_12612097&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;jwcarman edited comment on BEANUTILS-321 at 7/9/08 6:35 AM:
&lt;br&gt;----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Thomas,
&lt;br&gt;&lt;br&gt;If you do something like:
&lt;br&gt;&lt;br&gt;{code}
&lt;br&gt;if(myBean.isBooleanClass())
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; // Do something here...
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;and the Boolean type booleanClass member variable is null, you'll get a null pointer in JDK5+, because the auto-unboxing feature tries to call booleanClass.booleanValue() to unbox it. &amp;nbsp;If you try to do this in pre-JD5, it won't compile (because Boolean isn't of type boolean, so you can't use it as your conditional in your if statement).
&lt;br&gt;&lt;br&gt;And, for the record, I do understand your point. &amp;nbsp;I've actually encountered this before. &amp;nbsp;I don't recall the exact situation, but I'm sure I just renamed my &amp;quot;getter.&amp;quot; &amp;nbsp;Have you tried providing a &amp;quot;get&amp;quot; version of your accessor along with the &amp;quot;is&amp;quot; version? &amp;nbsp;That should probably solve your problem, I think (if you're ok with the potential NPE when accessing the &amp;quot;is&amp;quot; version in a conditional that is).
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; was (Author: jwcarman):
&lt;br&gt;&amp;nbsp; &amp;nbsp; Thomas,
&lt;br&gt;&lt;br&gt;If you do something like:
&lt;br&gt;&lt;br&gt;{code}
&lt;br&gt;if(myBean.isBooleanClass())
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; // Do something here...
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;and the Boolean type booleanClass member variable is null, you'll get a null pointer in JDK5+, because the auto-unboxing feature tries to call booleanClass.booleanValue() to unbox it. &amp;nbsp;If you try to do this in pre-JD5, it won't compile (because Boolean isn't of type boolean, so you can't use it as your conditional in your if statement)
&lt;br&gt;&amp;nbsp; 
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18361815.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18361716</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T06:31:38Z</published>
	<updated>2008-07-09T06:31:38Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612104#action_12612104&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612104#action_12612104&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;James Carman commented on BEANUTILS-321:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;Paul,
&lt;br&gt;&lt;br&gt;My point exactly. &amp;nbsp;A Boolean isn't binary; it's ternary, so that's probably why they didn't include it in the spec, since it's not an is or is not situation.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18361716.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18361652</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T06:29:33Z</published>
	<updated>2008-07-09T06:29:33Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612097#action_12612097&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612097#action_12612097&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;James Carman commented on BEANUTILS-321:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;Thomas,
&lt;br&gt;&lt;br&gt;If you do something like:
&lt;br&gt;&lt;br&gt;{code}
&lt;br&gt;if(myBean.isBooleanClass())
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; // Do something here...
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;and the Boolean type booleanClass member variable is null, you'll get a null pointer in JDK5+, because the auto-unboxing feature tries to call booleanClass.booleanValue() to unbox it. &amp;nbsp;If you try to do this in pre-JD5, it won't compile (because Boolean isn't of type boolean, so you can't use it as your conditional in your if statement)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18361652.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360506</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:29:31Z</published>
	<updated>2008-07-09T05:29:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612025#action_12612025&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612025#action_12612025&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;thomas menzel commented on BEANUTILS-321:
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;from a design point of view the isXXX() style of naming a boolean property just is a reflection on the engl. language which is more natural when using isXXX() to get the value.
&lt;br&gt;in that context i dont reflect if the Type returned is actually is boolean or Boolean. 
&lt;br&gt;&lt;br&gt;the Bean spec apparently states smth. diff or doesnt really take the Boolean case into consideration, maybe &amp;nbsp;i should post it there somewhere as i understand that it might no be a good idea to impl. this issue in a BeanUtils class that adheres to the spec. 
&lt;br&gt;&lt;br&gt;for a developer that needs to just copy properties which follow not strictly the bean convention this is confusing.
&lt;br&gt;&lt;br&gt;i hope u get my point but maybe there are others that want to voice an opinion too...
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360506.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360289</id>
	<title>[jira] Issue Comment Edited: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:15:31Z</published>
	<updated>2008-07-09T05:15:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;elonderin edited comment on BEANUTILS-321 at 7/9/08 5:13 AM:
&lt;br&gt;-----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt; how to get those classes
&lt;br&gt;case a) JAXB 
&lt;br&gt;case b) a class persisted to Hibernate where the state of null is also valid and needs to be reacted upon accordingly
&lt;br&gt;&lt;br&gt;&amp;gt; NPE
&lt;br&gt;why would i get one of those when just copying the property ?
&lt;br&gt;because of converters?
&lt;br&gt;afer all i expect smth. like this to be performed: a.setBooleanClass( &amp;nbsp;b.isBooleanClass() ) 
&lt;br&gt;&lt;br&gt;&amp;gt; Java doc
&lt;br&gt;i had read that somewhere along trying to find the problem but it didnt click that this meant &amp;quot;native boolean&amp;quot;. 
&lt;br&gt;u see, with autoboxing I dont care anymore or only a little about native or not...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; was (Author: elonderin):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; how to get those classes
&lt;br&gt;case a) JAXB 
&lt;br&gt;case b) a class persisted to Hibernate where the state of null is also valid and needs to be reacted upon accordingly
&lt;br&gt;&lt;br&gt;&amp;gt; NPE
&lt;br&gt;why would i get one of those when just copying the property ?
&lt;br&gt;because of converters?
&lt;br&gt;afer all i expect smth. like this to be performed: a.isBooleanClass( &amp;nbsp;b.isBooleanClass() ) 
&lt;br&gt;&lt;br&gt;&amp;gt; Java doc
&lt;br&gt;i had read that somewhere along trying to find the problem but it didnt click that this meant &amp;quot;native boolean&amp;quot;. 
&lt;br&gt;u see, with autoboxing I dont care anymore or only a little about native or not...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360289.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360259</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:13:31Z</published>
	<updated>2008-07-09T05:13:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;thomas menzel commented on BEANUTILS-321:
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt; how to get those classes
&lt;br&gt;case a) JAXB 
&lt;br&gt;case b) a class persisted to Hibernate where the state of null is also valid and needs to be reacted upon accordingly
&lt;br&gt;&lt;br&gt;&amp;gt; NPE
&lt;br&gt;why would i get one of those when just copying the property ?
&lt;br&gt;because of converters?
&lt;br&gt;afer all i expect smth. like this to be performed: {{a.isBooleanClass( &amp;nbsp;b.isBooleanClass() ) }}
&lt;br&gt;&lt;br&gt;&amp;gt; Java doc
&lt;br&gt;i had read that somewhere along trying to find the problem but it didnt click that this meant &amp;quot;native boolean&amp;quot;. 
&lt;br&gt;u see, with autoboxing I dont care anymore or only a little about native or not...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360259.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360260</id>
	<title>[jira] Issue Comment Edited: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:13:31Z</published>
	<updated>2008-07-09T05:13:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612021#action_12612021&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;elonderin edited comment on BEANUTILS-321 at 7/9/08 5:12 AM:
&lt;br&gt;-----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt; how to get those classes
&lt;br&gt;case a) JAXB 
&lt;br&gt;case b) a class persisted to Hibernate where the state of null is also valid and needs to be reacted upon accordingly
&lt;br&gt;&lt;br&gt;&amp;gt; NPE
&lt;br&gt;why would i get one of those when just copying the property ?
&lt;br&gt;because of converters?
&lt;br&gt;afer all i expect smth. like this to be performed: a.isBooleanClass( &amp;nbsp;b.isBooleanClass() ) 
&lt;br&gt;&lt;br&gt;&amp;gt; Java doc
&lt;br&gt;i had read that somewhere along trying to find the problem but it didnt click that this meant &amp;quot;native boolean&amp;quot;. 
&lt;br&gt;u see, with autoboxing I dont care anymore or only a little about native or not...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; was (Author: elonderin):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;gt; how to get those classes
&lt;br&gt;case a) JAXB 
&lt;br&gt;case b) a class persisted to Hibernate where the state of null is also valid and needs to be reacted upon accordingly
&lt;br&gt;&lt;br&gt;&amp;gt; NPE
&lt;br&gt;why would i get one of those when just copying the property ?
&lt;br&gt;because of converters?
&lt;br&gt;afer all i expect smth. like this to be performed: {{a.isBooleanClass( &amp;nbsp;b.isBooleanClass() ) }}
&lt;br&gt;&lt;br&gt;&amp;gt; Java doc
&lt;br&gt;i had read that somewhere along trying to find the problem but it didnt click that this meant &amp;quot;native boolean&amp;quot;. 
&lt;br&gt;u see, with autoboxing I dont care anymore or only a little about native or not...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360260.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360197</id>
	<title>[jira] Issue Comment Edited: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:09:31Z</published>
	<updated>2008-07-09T05:09:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612017#action_12612017&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612017#action_12612017&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;paul4christ79 edited comment on BEANUTILS-321 at 7/9/08 5:08 AM:
&lt;br&gt;-----------------------------------------------------------------
&lt;br&gt;&lt;br&gt;I don't think a Boolean object should be treated like a boolean type. It's not a true/false statement to have three states. In this situation, the property should throw an exception if the underlying property is null or interpret null as false -- but also provide a different property that does get/set with a Boolean object.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; was (Author: paul4christ79):
&lt;br&gt;&amp;nbsp; &amp;nbsp; I think a Boolean object should be treated like a boolean type.
&lt;br&gt;&amp;nbsp; 
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360197.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18360161</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T05:07:31Z</published>
	<updated>2008-07-09T05:07:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612017#action_12612017&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612017#action_12612017&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Paul Benedict commented on BEANUTILS-321:
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;I think a Boolean object should be treated like a boolean type.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18360161.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359955</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:55:31Z</published>
	<updated>2008-07-09T04:55:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612015#action_12612015&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612015#action_12612015&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;James Carman commented on BEANUTILS-321:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;By the way, this is mentioned in the API documentation (albeit in a somewhat roundabout way). &amp;nbsp;The BeanUtils class uses a PropertyUtilsBean:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://commons.apache.org/beanutils/commons-beanutils-1.7.0/docs/api/org/apache/commons/beanutils/PropertyUtilsBean.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://commons.apache.org/beanutils/commons-beanutils-1.7.0/docs/api/org/apache/commons/beanutils/PropertyUtilsBean.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;quot;The name of the actual getter or setter method to be used is determined using standard JavaBeans instrospection, so that (unless overridden by a BeanInfo class, a property named &amp;quot;xyz&amp;quot; will have a getter method named getXyz() or (*for boolean properties only*) isXyz(), and a setter method named setXyz().&amp;quot;
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359955.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359924</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:53:31Z</published>
	<updated>2008-07-09T04:53:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612011#action_12612011&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612011#action_12612011&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;James Carman commented on BEANUTILS-321:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;How are you getting classes that have Boolean properties set up with &amp;quot;is&amp;quot; accessor methods (IDEs don't generate them that way)? &amp;nbsp;This can be dangerous, especially with autoboxing (or autounboxing rather), because if the value us null, you'll get a NPE. &amp;nbsp;If it truly is a binary sort of situation (either it is or it isn't) then you should use boolean, since Boolean is actually somewhat ternary (true, false, null).
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359924.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359779</id>
	<title>[jira] Updated: (DBCP-272) Contention for DriverManager when initializing multiple datasources</title>
	<published>2008-07-09T04:45:32Z</published>
	<updated>2008-07-09T04:45:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/DBCP-272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/DBCP-272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Adrian Woodhead updated DBCP-272:
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Attachment: catalina.out.stuck2
&lt;br&gt;&lt;br&gt;This is the thread dump obtained by doing a &amp;quot;kill -3&amp;quot; on the tomcat process when in the stuck trace soon after startup.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Contention for DriverManager when initializing multiple datasources 
&lt;br&gt;&amp;gt; --------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: DBCP-272
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/DBCP-272&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/DBCP-272&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons Dbcp
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.2.2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105 mixed mode) on Linux
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Adrian Woodhead
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: catalina.out.stuck2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This issue has been discussed in the commons user's mailing list between myself, Simon Kitching and Phil Steitz. 
&lt;br&gt;&amp;gt; In summary:
&lt;br&gt;&amp;gt; I have a webapp deployed in tomcat containing 3 pooled datasources which are managed by Spring. The webapp starts up OK and is immediately hit by a load of a few hundred requests a second. It seems to handle a few hundred request and then just locks up entirely and stops responding entirely. Attached is a stack trace obtained by doing kill -3 when in this state. After discussion on the mailing list I changed the datasources to be non-lazy initialised in spring but the issue still occurs. 
&lt;br&gt;&amp;gt; Simon Kitching said:
&lt;br&gt;&amp;gt; &amp;quot;The first thread is trying to initialise a postgresql driver and register it with DriverManager. The driver registration is being triggered from a static initialiser block on the postgresql driver class, so is executing from within the Class.forName method (and therefore the postgresql driver Class object is locked by this thread).
&lt;br&gt;&amp;gt; The second thread is trying to initialise a mysql driver and register it with DriverManager. Again, the driver registration is being triggered from a static initialiser block on the mysql driver class, so the mysql driver Class object is locked by this thread).
&lt;br&gt;&amp;gt; But in both cases, the DriverManager needs to be initialised before anything can be registered. The first thread appears to have run first, triggering the initialisation process, and the second thread is blocked waiting for initialisation of DriverManager to complete before it registers the mysql driver. 
&lt;br&gt;&amp;gt; &amp;lt;snip/&amp;gt;
&lt;br&gt;&amp;gt; Possibly dbcp should call DriverManager.getDrivers() internally on startup to avoid this race... &amp;quot;
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28DBCP-272%29-Contention-for-DriverManager-when-initializing-multiple-datasources-tp18216778p18359779.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359780</id>
	<title>[jira] Issue Comment Edited: (DBCP-272) Contention for DriverManager when initializing multiple datasources</title>
	<published>2008-07-09T04:45:32Z</published>
	<updated>2008-07-09T04:45:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/DBCP-272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612006#action_12612006&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/DBCP-272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12612006#action_12612006&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;adrianw edited comment on DBCP-272 at 7/9/08 4:44 AM:
&lt;br&gt;--------------------------------------------------------------
&lt;br&gt;&lt;br&gt;This is the thread dump obtained by doing a &amp;quot;kill -3&amp;quot; on the tomcat process when in the stuck state soon after startup.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; was (Author: adrianw):
&lt;br&gt;&amp;nbsp; &amp;nbsp; This is the thread dump obtained by doing a &amp;quot;kill -3&amp;quot; on the tomcat process when in the stuck trace soon after startup.
&lt;br&gt;&amp;nbsp; 
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Contention for DriverManager when initializing multiple datasources 
&lt;br&gt;&amp;gt; --------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: DBCP-272
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/DBCP-272&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/DBCP-272&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons Dbcp
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.2.2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105 mixed mode) on Linux
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Adrian Woodhead
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Attachments: catalina.out.stuck2
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This issue has been discussed in the commons user's mailing list between myself, Simon Kitching and Phil Steitz. 
&lt;br&gt;&amp;gt; In summary:
&lt;br&gt;&amp;gt; I have a webapp deployed in tomcat containing 3 pooled datasources which are managed by Spring. The webapp starts up OK and is immediately hit by a load of a few hundred requests a second. It seems to handle a few hundred request and then just locks up entirely and stops responding entirely. Attached is a stack trace obtained by doing kill -3 when in this state. After discussion on the mailing list I changed the datasources to be non-lazy initialised in spring but the issue still occurs. 
&lt;br&gt;&amp;gt; Simon Kitching said:
&lt;br&gt;&amp;gt; &amp;quot;The first thread is trying to initialise a postgresql driver and register it with DriverManager. The driver registration is being triggered from a static initialiser block on the postgresql driver class, so is executing from within the Class.forName method (and therefore the postgresql driver Class object is locked by this thread).
&lt;br&gt;&amp;gt; The second thread is trying to initialise a mysql driver and register it with DriverManager. Again, the driver registration is being triggered from a static initialiser block on the mysql driver class, so the mysql driver Class object is locked by this thread).
&lt;br&gt;&amp;gt; But in both cases, the DriverManager needs to be initialised before anything can be registered. The first thread appears to have run first, triggering the initialisation process, and the second thread is blocked waiting for initialisation of DriverManager to complete before it registers the mysql driver. 
&lt;br&gt;&amp;gt; &amp;lt;snip/&amp;gt;
&lt;br&gt;&amp;gt; Possibly dbcp should call DriverManager.getDrivers() internally on startup to avoid this race... &amp;quot;
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28DBCP-272%29-Contention-for-DriverManager-when-initializing-multiple-datasources-tp18216778p18359780.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359690</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:41:32Z</published>
	<updated>2008-07-09T04:41:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611997#action_12611997&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611997#action_12611997&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;thomas menzel commented on BEANUTILS-321:
&lt;br&gt;-----------------------------------------
&lt;br&gt;&lt;br&gt;Even so, I still argue that it would be more intuitive if that would be working or at least be configurable somehow.
&lt;br&gt;&lt;br&gt;At least this should be mentioned in the Api as well.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359690.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359566</id>
	<title>[jira] Commented: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:35:31Z</published>
	<updated>2008-07-09T04:35:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611990#action_12611990&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611990#action_12611990&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;James Carman commented on BEANUTILS-321:
&lt;br&gt;----------------------------------------
&lt;br&gt;&lt;br&gt;This is because the JavaBeans specification doesn't say that Boolean properties can have &amp;quot;is&amp;quot; accessor methods, only boolean properties. &amp;nbsp;See the JavaBeans specification section 8.3.2.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html&lt;/a&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359566.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359366</id>
	<title>[jira] Updated: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:23:31Z</published>
	<updated>2008-07-09T04:23:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;thomas menzel updated BEANUTILS-321:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Description: 
&lt;br&gt;it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&lt;br&gt;Hence, the test case below will fail.
&lt;br&gt;I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&lt;br&gt;Thx
&lt;br&gt;&lt;br&gt;{code:java}
&lt;br&gt;/**
&lt;br&gt;&amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;nbsp;* 
&lt;br&gt;&amp;nbsp;*/
&lt;br&gt;public class BeanUtilsTest extends TestCase {
&lt;br&gt;&lt;br&gt;&amp;nbsp; private class FooBean {
&lt;br&gt;&amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;&amp;nbsp; was:
&lt;br&gt;it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&lt;br&gt;Hence, the test case below will fail
&lt;br&gt;&lt;br&gt;{code:java}
&lt;br&gt;/**
&lt;br&gt;&amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;nbsp;* 
&lt;br&gt;&amp;nbsp;*/
&lt;br&gt;public class BeanUtilsTest extends TestCase {
&lt;br&gt;&lt;br&gt;&amp;nbsp; private class FooBean {
&lt;br&gt;&amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail.
&lt;br&gt;&amp;gt; I suggest to handle these props as well, as for a user of BeanUtils this was/is quite surprising to me -- and probably others.
&lt;br&gt;&amp;gt; Thx
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359366.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359334</id>
	<title>[jira] Closed: (BEANUTILS-320) Implement equals, hashCode and toString replacement</title>
	<published>2008-07-09T04:21:31Z</published>
	<updated>2008-07-09T04:21:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Vincenzo Vitale closed BEANUTILS-320.
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Resolution: Duplicate
&lt;br&gt;&lt;br&gt;The new improvement reuqest created for the Lang project : 
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/LANG-449&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/LANG-449&lt;/a&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Implement equals, hashCode and toString replacement
&lt;br&gt;&amp;gt; ---------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-320
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Bean / Property Utils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Vincenzo Vitale
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In my company (TomTom), we have internally developed a replacement of the equals, hashcode and toString methods.
&lt;br&gt;&amp;gt; The base idea is to use the annotation @BusinessObject at the class level and @BusinessField at field level. Then what developers normally do is to override the three methods delegating to the tomtom.BeanUtils methods:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public boolean equals(Object obj) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.equals(this, obj);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int hashCode() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.hashCode(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String toString() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.toString(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; And i.e. the method signature of equals is:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Compare two @BusinessObject beans comparing only the {@link BusinessField}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* annotated fields.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param firstBean First bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param secondBean Second bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return The equals result.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws IllegalArgumentException If one of the beans compared is not an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; instance of a {@link BusinessObject} annotated class.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public static boolean equals(Object firstBean, Object secondBean);
&lt;br&gt;&amp;gt; In the last versions of EqualsBuilder now there is the new method reflectionEquals... but there is no a way to specify what to include in the comparison. With our two annotations we are able to let developers exactly define what need to be included in a Business comparison, as i.e. normally required by persistence framework like hibernate. 
&lt;br&gt;&amp;gt; The current implementation can also handle more complex case, comparing correctly totally different kind of objects.
&lt;br&gt;&amp;gt; For example if all my business logic cares only about the color, I can define:
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class Cat{
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; public class ColouredCat extends Cat{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class SunSet{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color=&amp;quot;red&amp;quot;;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; and then compare any instance of ColouredCat with a Sunset instance, finding out that the redColouredCat is (for my business logic) equal to a default instance of a Sunset. And also more tricky cases are handled (different BusinessFields, no BusinessObject annotation and so on).
&lt;br&gt;&amp;gt; We intensively use Hibernate and the utility demonstrated to work fine with CGLIB proxies 
&lt;br&gt;&amp;gt; We always thought about the possibility to create a new Open Source project but then it was decided it would be better adding the feature to an already well know open source project...
&lt;br&gt;&amp;gt; If you are interested I can send you more details. How can we (me more one other developer) eventually became committers?
&lt;br&gt;&amp;gt; Thanks in advance,
&lt;br&gt;&amp;gt; Vicio.
&lt;br&gt;&amp;gt; P.s.: an utility method to automatically populate the BusinessFields of a BusinessObject is also implemented.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-320%29-Implement-equals%2C-hashCode-and-toString-replacement-tp18329064p18359334.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359295</id>
	<title>[jira] Updated: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:19:31Z</published>
	<updated>2008-07-09T04:19:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;thomas menzel updated BEANUTILS-321:
&lt;br&gt;------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Description: 
&lt;br&gt;it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&lt;br&gt;Hence, the test case below will fail
&lt;br&gt;&lt;br&gt;{code:java}
&lt;br&gt;/**
&lt;br&gt;&amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;nbsp;* 
&lt;br&gt;&amp;nbsp;*/
&lt;br&gt;public class BeanUtilsTest extends TestCase {
&lt;br&gt;&lt;br&gt;&amp;nbsp; private class FooBean {
&lt;br&gt;&amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;{code}
&lt;br&gt;&lt;br&gt;&amp;nbsp; was:I have a bean class &amp;quot;Cache&amp;quot; which is generated from jaxb , which has the isEnable method, i can not use the xpath expression &amp;quot;/cache/enable&amp;quot;to retrive the result, is that means BeanUtils only support setXXX getXXX? not support isXXX for boolean values?
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; [beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-321
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 1.7.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: thomas menzel
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; it seems that an isXXX() style property returning an java.lang.Boolean Object is NOT recognized as the getter peoperty -- at least it wont copy it.
&lt;br&gt;&amp;gt; Hence, the test case below will fail
&lt;br&gt;&amp;gt; {code:java}
&lt;br&gt;&amp;gt; /**
&lt;br&gt;&amp;gt; &amp;nbsp;* @author tmenzel
&lt;br&gt;&amp;gt; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp;*/
&lt;br&gt;&amp;gt; public class BeanUtilsTest extends TestCase {
&lt;br&gt;&amp;gt; &amp;nbsp; private class FooBean {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Boolean booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; boolean booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public Boolean isBooleanClass() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanClass(Boolean booleanClass) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanClass = booleanClass;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public boolean isBooleanPrimitive() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public void setBooleanPrimitive(boolean booleanPrimitive) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.booleanPrimitive = booleanPrimitive;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; public void testCopyBooleanProps() throws Exception {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean a = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanClass(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a.setBooleanPrimitive(false);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; FooBean b = new FooBean();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanClass(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; b.setBooleanPrimitive(true);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; BeanUtils.copyProperties(a, b);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanPrimitive(), b.isBooleanPrimitive());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; assertEquals(a.isBooleanClass(), b.isBooleanClass());
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; {code}
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359295.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359243</id>
	<title>[jira] Commented: (BEANUTILS-320) Implement equals, hashCode and toString replacement</title>
	<published>2008-07-09T04:17:31Z</published>
	<updated>2008-07-09T04:17:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611984#action_12611984&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611984#action_12611984&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Vincenzo Vitale commented on BEANUTILS-320:
&lt;br&gt;-------------------------------------------
&lt;br&gt;&lt;br&gt;Created a new improvement request for Lang project:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/LANG-449&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/LANG-449&lt;/a&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Implement equals, hashCode and toString replacement
&lt;br&gt;&amp;gt; ---------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-320
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Bean / Property Utils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Vincenzo Vitale
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In my company (TomTom), we have internally developed a replacement of the equals, hashcode and toString methods.
&lt;br&gt;&amp;gt; The base idea is to use the annotation @BusinessObject at the class level and @BusinessField at field level. Then what developers normally do is to override the three methods delegating to the tomtom.BeanUtils methods:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public boolean equals(Object obj) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.equals(this, obj);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int hashCode() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.hashCode(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String toString() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.toString(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; And i.e. the method signature of equals is:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Compare two @BusinessObject beans comparing only the {@link BusinessField}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* annotated fields.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param firstBean First bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param secondBean Second bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return The equals result.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws IllegalArgumentException If one of the beans compared is not an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; instance of a {@link BusinessObject} annotated class.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public static boolean equals(Object firstBean, Object secondBean);
&lt;br&gt;&amp;gt; In the last versions of EqualsBuilder now there is the new method reflectionEquals... but there is no a way to specify what to include in the comparison. With our two annotations we are able to let developers exactly define what need to be included in a Business comparison, as i.e. normally required by persistence framework like hibernate. 
&lt;br&gt;&amp;gt; The current implementation can also handle more complex case, comparing correctly totally different kind of objects.
&lt;br&gt;&amp;gt; For example if all my business logic cares only about the color, I can define:
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class Cat{
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; public class ColouredCat extends Cat{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class SunSet{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color=&amp;quot;red&amp;quot;;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; and then compare any instance of ColouredCat with a Sunset instance, finding out that the redColouredCat is (for my business logic) equal to a default instance of a Sunset. And also more tricky cases are handled (different BusinessFields, no BusinessObject annotation and so on).
&lt;br&gt;&amp;gt; We intensively use Hibernate and the utility demonstrated to work fine with CGLIB proxies 
&lt;br&gt;&amp;gt; We always thought about the possibility to create a new Open Source project but then it was decided it would be better adding the feature to an already well know open source project...
&lt;br&gt;&amp;gt; If you are interested I can send you more details. How can we (me more one other developer) eventually became committers?
&lt;br&gt;&amp;gt; Thanks in advance,
&lt;br&gt;&amp;gt; Vicio.
&lt;br&gt;&amp;gt; P.s.: an utility method to automatically populate the BusinessFields of a BusinessObject is also implemented.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-320%29-Implement-equals%2C-hashCode-and-toString-replacement-tp18329064p18359243.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359242</id>
	<title>[jira] Created: (BEANUTILS-321) [beanutils] wont recognize isXXX() properties returning Boolean Object</title>
	<published>2008-07-09T04:17:31Z</published>
	<updated>2008-07-09T04:17:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">[beanutils] wont recognize isXXX() properties returning Boolean Object
&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: BEANUTILS-321
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-321&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-321&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Commons BeanUtils
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: New Feature
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 1.7.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: thomas menzel
&lt;br&gt;&lt;br&gt;&lt;br&gt;I have a bean class &amp;quot;Cache&amp;quot; which is generated from jaxb , which has the isEnable method, i can not use the xpath expression &amp;quot;/cache/enable&amp;quot;to retrive the result, is that means BeanUtils only support setXXX getXXX? not support isXXX for boolean values?
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28BEANUTILS-321%29--beanutils--wont-recognize-isXXX%28%29-properties-returning-Boolean-Object-tp18359242p18359242.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18359199</id>
	<title>[jira] Created: (LANG-449) Implement equals, hashCode and toString replacement</title>
	<published>2008-07-09T04:15:31Z</published>
	<updated>2008-07-09T04:15:31Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Implement equals, hashCode and toString replacement
&lt;br&gt;---------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: LANG-449
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/LANG-449&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/LANG-449&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Commons Lang
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Vincenzo Vitale
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&lt;br&gt;&lt;br&gt;In my company (TomTom), we have internally developed a replacement of the equals, hashcode and toString methods.
&lt;br&gt;&lt;br&gt;The base idea is to use the annotation @BusinessObject at the class level and @BusinessField at field level. Then what developers normally do is to override the three methods delegating to the utility methods:
&lt;br&gt;&lt;br&gt;@Override
&lt;br&gt;public boolean equals(Object obj) { return BeanUtils.equals(this, obj); }
&lt;br&gt;&lt;br&gt;@Override
&lt;br&gt;public int hashCode() { return BeanUtils.hashCode(this); }
&lt;br&gt;&lt;br&gt;@Override
&lt;br&gt;public String toString() { return BeanUtils.toString(this); }
&lt;br&gt;&lt;br&gt;And i.e. the method signature of equals is:
&lt;br&gt;&lt;br&gt;/**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; * Compare two @BusinessObject beans comparing only the {@link BusinessField}
&lt;br&gt;&amp;nbsp; &amp;nbsp; * annotated fields.
&lt;br&gt;&amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; * @param firstBean First bean to compare.
&lt;br&gt;&amp;nbsp; &amp;nbsp; * @param secondBean Second bean to compare.
&lt;br&gt;&amp;nbsp; &amp;nbsp; * @return The equals result.
&lt;br&gt;&amp;nbsp; &amp;nbsp; * @throws IllegalArgumentException If one of the beans compared is not an
&lt;br&gt;&amp;nbsp; &amp;nbsp; * instance of a {@link BusinessObject} annotated class.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public static boolean equals(Object firstBean, Object secondBean);
&lt;br&gt;&lt;br&gt;In the last versions of EqualsBuilder now there is the new method reflectionEquals... but there is no a way to specify what to include in the comparison. With our two annotations we are able to let developers exactly define what need to be included in a Business comparison, as i.e. normally required by persistence framework like hibernate.
&lt;br&gt;&lt;br&gt;The current implementation can also handle more complex case, comparing correctly totally different kind of objects.
&lt;br&gt;&lt;br&gt;For example if all my business logic cares only about the color, I can define:
&lt;br&gt;&lt;br&gt;@BusinessObject
&lt;br&gt;public class Cat{
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;public class ColouredCat extends Cat{ @BusinessField private String color; getter/setter }
&lt;br&gt;&lt;br&gt;@BusinessObject
&lt;br&gt;public class SunSet{ @BusinessField private String color=&amp;quot;red&amp;quot;; getter/setter }
&lt;br&gt;&lt;br&gt;and then compare any instance of ColouredCat with a Sunset instance, finding out that the redColouredCat is (for my business logic) equal to a default instance of a Sunset. And also more tricky cases are handled (different BusinessFields, no BusinessObject annotation and so on).
&lt;br&gt;&lt;br&gt;We intensively use Hibernate and the utility demonstrated to work fine with CGLIB proxies
&lt;br&gt;&lt;br&gt;We always thought about the possibility to create a new Open Source project but then it was decided it would be better adding the feature to an already well know open source project...
&lt;br&gt;&lt;br&gt;If you are interested I can send you more details. How can we (me more one other developer) eventually became committers?
&lt;br&gt;&lt;br&gt;Thanks in advance,
&lt;br&gt;Vicio.
&lt;br&gt;&lt;br&gt;P.s.: an utility method to automatically populate the BusinessFields of a BusinessObject is also implemented.
&lt;br&gt;&lt;br&gt;P.s.2: In the meanwhile I started creating a new OpenSource project here: &lt;a href=&quot;http://code.google.com/p/simplestuff/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/simplestuff/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-jira--Created%3A-%28LANG-449%29-Implement-equals%2C-hashCode-and-toString-replacement-tp18359199p18359199.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18358525</id>
	<title>[jira] Commented: (BEANUTILS-320) Implement equals, hashCode and toString replacement</title>
	<published>2008-07-09T03:25:32Z</published>
	<updated>2008-07-09T03:25:32Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611973#action_12611973&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12611973#action_12611973&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Vincenzo Vitale commented on BEANUTILS-320:
&lt;br&gt;-------------------------------------------
&lt;br&gt;&lt;br&gt;Hi Niall,
&lt;br&gt;&lt;br&gt;thanks for the comment.
&lt;br&gt;&lt;br&gt;I think you are right, commons lang will be more appropriate... I will new improvement file there.
&lt;br&gt;&lt;br&gt;BTW, I also created yesterday a project in GoogleCode for this &lt;a href=&quot;http://code.google.com/p/simplestuff/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://code.google.com/p/simplestuff/&lt;/a&gt;&amp;nbsp;, just to beginning the &amp;quot;coming out&amp;quot; :-)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;V.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Implement equals, hashCode and toString replacement
&lt;br&gt;&amp;gt; ---------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: BEANUTILS-320
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/BEANUTILS-320&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/BEANUTILS-320&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Commons BeanUtils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: New Feature
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Bean / Property Utils
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Vincenzo Vitale
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In my company (TomTom), we have internally developed a replacement of the equals, hashcode and toString methods.
&lt;br&gt;&amp;gt; The base idea is to use the annotation @BusinessObject at the class level and @BusinessField at field level. Then what developers normally do is to override the three methods delegating to the tomtom.BeanUtils methods:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public boolean equals(Object obj) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.equals(this, obj);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int hashCode() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.hashCode(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Override
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public String toString() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return BeanUtils.toString(this);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; And i.e. the method signature of equals is:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Compare two @BusinessObject beans comparing only the {@link BusinessField}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* annotated fields.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param firstBean First bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param secondBean Second bean to compare.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return The equals result.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @throws IllegalArgumentException If one of the beans compared is not an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; instance of a {@link BusinessObject} annotated class.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public static boolean equals(Object firstBean, Object secondBean);
&lt;br&gt;&amp;gt; In the last versions of EqualsBuilder now there is the new method reflectionEquals... but there is no a way to specify what to include in the comparison. With our two annotations we are able to let developers exactly define what need to be included in a Business comparison, as i.e. normally required by persistence framework like hibernate. 
&lt;br&gt;&amp;gt; The current implementation can also handle more complex case, comparing correctly totally different kind of objects.
&lt;br&gt;&amp;gt; For example if all my business logic cares only about the color, I can define:
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class Cat{
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; public class ColouredCat extends Cat{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; @BusinessObject
&lt;br&gt;&amp;gt; public class SunSet{
&lt;br&gt;&amp;gt; @BusinessField
&lt;br&gt;&amp;gt; private String color=&amp;quot;red&amp;quot;;
&lt;br&gt;&amp;gt; getter/setter
&lt;br&gt;&amp;gt; }
&lt;br&