tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Beatty (JIRA)" <>
Subject [jira] [Created] (TOMEE-2039) Closing Curly Brace Removed from Custom Resource Properties
Date Thu, 27 Apr 2017 21:59:04 GMT
Steve Beatty created TOMEE-2039:

             Summary: Closing Curly Brace Removed from Custom Resource Properties
                 Key: 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/ 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.

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);

This message was sent by Atlassian JIRA

View raw message