commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <>
Subject [jira] Reopened: (BEANUTILS-112) [beanutils] defaultTransformers is public in BeanMap class
Date Tue, 17 Feb 2009 01:13:02 GMT


Sebb reopened BEANUTILS-112:

I don't think the issue has been fully dealt with.

Although the initial HashMap is unmodifiable, external code can still replace the map with
a new modifiable HashMap.

> [beanutils] defaultTransformers is public in BeanMap class
> ----------------------------------------------------------
>                 Key: BEANUTILS-112
>                 URL:
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Bean-Collections
>    Affects Versions: 1.6
>         Environment: Operating System: other
> Platform: Other
>            Reporter: Simon Kitching
>            Assignee: Niall Pemberton
>             Fix For: 1.8.0
> The BeanMap class in the "optional" section has:
>     public static HashMap defaultTransformers = new HashMap();
> I think this is a *really* bad idea. 
> Firstly, because it's static, various parts of an application can interact in
> unexpected ways. For example, some library your code is calling might,
> unexpectedly, add a transformer to the default transformers causing surprising
> effects.
> That's even more interesting if the library (commons-collections or
> commons-beanutils) is deployed via a shared webapp in a container. In that case,
> one webapp can have side-effects on other webapps.
> And because it's a public member, there is no way to control access to this field.
> This class was in commons-collections since 1.0. It was copied into
> commons-beanutils before the 1.7.0 release, and deprecated in commons-collections.
> This class is only in the "optional" section, and is not used by the core
> beanutils code.

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

View raw message