[ https://issues.apache.org/activemq/browse/AMQ-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_39453 ]
David Jencks commented on AMQ-1254: ----------------------------------- See also https://issues.apache.org/jira/browse/GERONIMO-3243 The reason amq is using this peculiar design is that they need a lock across the entire vm, not just within one classloader. Putting something in System.getProperties is a simple way to do that and it's not too easy to think of another way. However it is possible to change what the locked object is to a string, although at a slight cost. > Kaha Store puts a non-string into System properties > --------------------------------------------------- > > Key: AMQ-1254 > URL: https://issues.apache.org/activemq/browse/AMQ-1254 > Project: ActiveMQ > Issue Type: Bug > Affects Versions: 4.1.2 > Reporter: David Jencks > Attachments: Kaha-Store.patch > > > KahaStore puts a hashmap into SystemProperties, which causes problems with > programs that expect only strings as properties. In particular some versions > of Hibernate assume all system properties are strings: this is causing > difficulties running roller in geronimo 2.0 > Attached is a proposed solution. I have no idea how to test it. I get the > same 7 failures and one error building amq with and without the change. > The proposal stores the list of locked directories in a string and converts > it back and forth to a map whenever it is accessed. I use a constant string > as the vm-wide lock monitor formerly provided by the HashSet. According to > the String javadoc constant strings are intern()ed and the same instance is > provided in any classloader: this makes it suitable for a vm-wide lock > monitor. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.