commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Kovalenko (JIRA)" <j...@apache.org>
Subject [jira] Created: (DIGESTER-133) Class fields are not set if class is inherited from HashMap if commons-beanutils-1.8.0 is used
Date Fri, 16 Jan 2009 09:42:01 GMT
Class fields are not set if class is inherited from HashMap if commons-beanutils-1.8.0 is used
----------------------------------------------------------------------------------------------

                 Key: DIGESTER-133
                 URL: https://issues.apache.org/jira/browse/DIGESTER-133
             Project: Commons Digester
          Issue Type: Bug
    Affects Versions: 2.0, 1.8, 1.7, 1.6
         Environment: OS: Kubuntu 8.0.4, Java version is 1.5.0_15
Windows XP, Java version 1.5.0_11-b03
            Reporter: Alexander Kovalenko
            Priority: Minor


Class fields are not set if class is inherited from HashMap, value is put in HashMap instead.
I tried this simple test with  Digester 1.6, 1.7, 1.8 and 2.0. It works with commons-beanutils-1.7.0,
but does not work with commons-beanutils-1.8.0. JUnit 4.4 was used for testing.

================ Class to be instantiated from XML ==========================
import java.util.HashMap;


public class MyClass extends HashMap<String, String> {
	private boolean flag = false;

	public boolean isFlag()
	{
		return flag;
	}

	public void setFlag(boolean flag)
	{
		this.flag = flag;
	}
}

================= Test ===================
import static org.junit.Assert.assertTrue;

import java.io.ByteArrayInputStream;
import java.io.IOException;

import org.apache.commons.digester.Digester;
import org.junit.Test;
import org.xml.sax.SAXException;



public class TestDigester {
	
	@Test
	public void testDigester() throws IOException, SAXException {
		final String xml = "<myclass flag='true'/>";
		
		final Digester digester = new Digester();
		digester.addObjectCreate("myclass", MyClass.class);
		digester.addSetProperties("myclass");
		
		final MyClass res = (MyClass) digester.parse(new ByteArrayInputStream(xml.getBytes()));
		assertTrue(res.isFlag());
	}
}


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message