I wrote last year about address parsing solutions in java, and how an open source project call JGeocoder had worked out well for us. I wanted to announce that my company, 8z, has significantly improved the address parsing capability of JGeocoder based on data from a number of property listings.
My colleague, Karamjeet Khalsa, added this functionality as well as more than fifty unit tests. An address that previously would have failed but now is parsed correctly is: 25266 Road 38.1 Dolores CO. Or try this one: 10 Black Bear Gypsum CO. This code focuses on not just parsing address, city and state, but also breaking apart the address into components like street number, unit number, etc (for US style addresses).
Working with the current maintainer of the project, Karamjeet uploaded the new jar yesterday, and it is now ready to download. This is the first release in four years, so if you need address parsing, go take a look!