no'

try, *text = text.replaceAll("\\{" + key + "\\}", *
Matcher.quoteReplacement(<http://download.oracle.com/javase/6/docs/api/java/util/regex/Matcher.html#quoteReplacement(java.lang.String)>
*entry.getValue()));*

On Wed, May 11, 2011 at 10:09 PM, Amila Maha Arachchi <[email protected]>wrote:

>
>
> On Wed, May 11, 2011 at 9:51 PM, Afkham Azeez <[email protected]> wrote:
>
>> Cool. That should work with replaceAll.
>
>
> I am a little confused. Does this mean ok to go with *String.replace* ?
>
>
>>
>> On Wed, May 11, 2011 at 9:44 PM, Sadeep Jayasumana <[email protected]>wrote:
>>
>>> Hi,
>>>
>>> Quoting from [1] - *Note that backslashes (\) and dollar signs ($) in
>>> the replacement string may cause the results to be different than if it were
>>> being treated as a literal replacement string; see Matcher.replaceAll. Use
>>> Matcher.quoteReplacement(java.lang.String) to suppress the special meaning
>>> of these characters, if desired.*
>>>
>>> [1] 
>>> http://download.oracle.com/javase/6/docs/api/java/lang/String.html#replaceAll(java.lang.String,
>>> java.lang.String)
>>>
>>>
>>> <http://download.oracle.com/javase/6/docs/api/java/lang/String.html#replaceAll%28java.lang.String,+java.lang.String%29>
>>> Thanks,
>>> Sadeep
>>>
>>>
>>> On Wed, May 11, 2011 at 9:40 PM, Amila Maha Arachchi <[email protected]>wrote:
>>>
>>>> Found this in the internet.
>>>>
>>>>
>>>> http://www.velocityreviews.com/forums/t295371-string-replaceall-and-regex-question.html
>>>>
>>>>
>>>> On Wed, May 11, 2011 at 9:39 PM, Amila Maha Arachchi 
>>>> <[email protected]>wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, May 11, 2011 at 9:31 PM, Afkham Azeez <[email protected]> wrote:
>>>>>
>>>>>> replaceAll takes a regex as the first parameter. The second parameter
>>>>>> is just a normal String. So, unless the key contains special characters,
>>>>>> this cannot fail. Also, the replace method takes two characters as
>>>>>> parameters, or 2 CharSequences. So, replace & replaceAll have different
>>>>>> behaviors.
>>>>>
>>>>>
>>>>> This failed when the second string has special characters.
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, May 11, 2011 at 9:19 PM, Amila Maha Arachchi <[email protected]
>>>>>> > wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Theres this code segment in org.wso2.carbon.email.sender component.
>>>>>>>
>>>>>>> public static String replacePlaceHolders(String text, Map<String,
>>>>>>> String> userParameters) {
>>>>>>>         if (userParameters != null) {
>>>>>>>             for (Map.Entry<String, String> entry :
>>>>>>> userParameters.entrySet()) {
>>>>>>>                 String key = entry.getKey();
>>>>>>>                 *text = text.replaceAll("\\{" + key + "\\}",
>>>>>>> entry.getValue());*
>>>>>>>             }
>>>>>>>         }
>>>>>>>         return text;
>>>>>>>     }
>>>>>>>
>>>>>>>
>>>>>>> Above String.replaceAll() method throws exceptions when there are
>>>>>>> special characters in the string which is being replaced with. i.e. In 
>>>>>>> the
>>>>>>> above sample it is entry.getValue(). An example is the $ sign. This can 
>>>>>>> be
>>>>>>> avoided by using \\$. But it is a headache.
>>>>>>>
>>>>>>
>>>>>> Can you give us an example for key and entryValue, and if possible the
>>>>>> exception stacktrace?
>>>>>>
>>>>>
>>>>> key: subscription-charges
>>>>> entryValues: Multitenancy Medium $50
>>>>>
>>>>> Here is the stacktrace.
>>>>>
>>>>> [2011-05-11 19:56:42,999] ERROR
>>>>> {org.wso2.carbon.billing.core.handlers.EmailSendingHandler} -  Error in
>>>>> sending the bill for the customer. customer: d.com, invoice id:19
>>>>> java.lang.IndexOutOfBoundsException: No group 5   *<== Here, it breaks
>>>>> at $50. Thats why the 5 is there.If the values was $10, it would say No
>>>>> group 1.*
>>>>>     at java.util.regex.Matcher.group(Matcher.java:470)
>>>>>     at java.util.regex.Matcher.appendReplacement(Matcher.java:737)
>>>>>     at java.util.regex.Matcher.replaceAll(Matcher.java:813)
>>>>>     at java.lang.String.replaceAll(String.java:2189)
>>>>>     at
>>>>> org.wso2.carbon.email.sender.util.Util.replacePlaceHolders(Util.java:97)
>>>>>     at
>>>>> org.wso2.carbon.email.sender.api.EmailSender.getMessageBody(EmailSender.java:106)
>>>>>     at
>>>>> org.wso2.carbon.email.sender.api.EmailSender.sendEmail(EmailSender.java:55)
>>>>>     at
>>>>> org.wso2.carbon.billing.core.handlers.EmailSendingHandler.execute(EmailSendingHandler.java:82)
>>>>>     at
>>>>> org.wso2.carbon.billing.core.BillingEngine.generateBill(BillingEngine.java:77)
>>>>>     at
>>>>> org.wso2.carbon.billing.core.BillingEngine.generateBill(BillingEngine.java:59)
>>>>>     at
>>>>> org.wso2.carbon.billing.core.scheduler.BillingJob.execute(BillingJob.java:42)
>>>>>     at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>>>>>     at
>>>>> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Instead, String.replace() can be used and* it too replaces all the
>>>>>>> occurrences* of the string being replaced. i.e. We can use
>>>>>>>
>>>>>>> *text = text.replace("{" + key + "}", entry.getValue());
>>>>>>>
>>>>>>> *Therefore, is it ok that I change the above method with the latter
>>>>>>> mentioned one.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> AmilaM.
>>>>>>> *
>>>>>>> *
>>>>>>> _______________________________________________
>>>>>>> Carbon-dev mailing list
>>>>>>> [email protected]
>>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Afkham Azeez*
>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>> * <http://www.apache.org/>**
>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>>>>> twitter: 
>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>>> *
>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>>>>> *
>>>>>> *
>>>>>> *Lean . Enterprise . Middleware*
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Stratos-dev mailing list
>>>>>> [email protected]
>>>>>> https://wso2.org/cgi-bin/mailman/listinfo/stratos-dev
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Carbon-dev mailing list
>>>> [email protected]
>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Sadeep Jayasumana
>>>
>>> Software Engineer
>>> WSO2 Inc.
>>> Email - [email protected]
>>> Mobile - +94 77 22 66 507
>>>
>>
>>
>>
>> --
>> *Afkham Azeez*
>> Director of Architecture; WSO2, Inc.; http://wso2.com
>> Member; Apache Software Foundation; http://www.apache.org/
>> * <http://www.apache.org/>**
>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919
>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>> *
>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>> *
>> *
>> *Lean . Enterprise . Middleware*
>>
>>
>> _______________________________________________
>> Carbon-dev mailing list
>> [email protected]
>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>
>>
>


-- 
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com
Member; Apache Software Foundation; http://www.apache.org/
* <http://www.apache.org/>**
email: **[email protected]* <[email protected]>* cell: +94 77 3320919
blog: **http://blog.afkham.org* <http://blog.afkham.org>*
twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
*
linked-in: **http://lk.linkedin.com/in/afkhamazeez*
*
*
*Lean . Enterprise . Middleware*
_______________________________________________
Carbon-dev mailing list
[email protected]
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to