You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Steve Beatty (JIRA)" <ji...@apache.org> on 2017/04/27 21:59:04 UTC
[jira] [Created] (TOMEE-2039) Closing Curly Brace Removed from
Custom Resource Properties
Steve Beatty created TOMEE-2039:
-----------------------------------
Summary: Closing Curly Brace Removed from Custom Resource Properties
Key: TOMEE-2039
URL: https://issues.apache.org/jira/browse/TOMEE-2039
Project: TomEE
Issue Type: Bug
Affects Versions: 7.0.3
Reporter: Steve Beatty
In migrating a project from OpenEJB 4.7 to 7, I started getting errors in a custom resource due the '}' character being removed from a property value. Looking in the source it appears that issue is in org/apache/openejb/util/PropertyPlaceHolderHelper.java which is trying to do variable substitution but is very aggressive about it - all $\{ and } Strings are being removed in the process. I believe the issue is the simpleValueAsStringOrCharArray method and the snippet below should fix it.
{code}
public static Object simpleValueAsStringOrCharArray(final String raw) {
if (raw == null) {
return null;
}
// This will replace ${ or } if either is encountered instead of matching pair
// I don't know why this is useful
//
//if (!raw.contains(PREFIX) || !raw.contains(SUFFIX)) {
// return decryptIfNeeded(raw.replace(PREFIX, "").replace(SUFFIX, ""), true);
//}
if (!raw.contains(PREFIX) && !raw.contains(SUFFIX)) {
return decryptIfNeeded(raw, true);
}
String value = SUBSTITUTOR.replace(raw);
if (!value.equals(raw) && value.startsWith("java:")) {
value = value.substring(5);
}
// not sure the replaces here are useful either
// if there are still markup characters now then the substitution didn't work
// and it's probably more useful for debugging purposes to see those characters
//
// return decryptIfNeeded(value.replace(PREFIX, "").replace(SUFFIX, ""), true);
return decryptIfNeeded(value, true);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)