Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Woonsan Ko
Gotcha! Now I can understand the escape character means: Ignore the
following variable reference.
Thank you so much for the explanation with a good solution.

Cheers,

Woonsan

On Thu, Jul 23, 2015 at 2:42 PM, Anthony Brice
anthonybr...@lateachiever.com wrote:
 Sorry, the second sentence in the first paragraph should read: When you
 change the default escape character, you don't need to use it _to_ get a
 dollar sign before a variable reference in your interpolated string.

 To explain a little more, consider what happens to  $${amount} when
 you're using StrSubstitutor's default escape character. StrSubstitutor sees
 that you've got a variable reference (${amount}), and that you've got the
 escape character ($) before it, so it replaces $${amount} with
 ${amount}.

 Now consider what happens to  $${amount} when you've set StrSubstitutor's
 escape character to something other than the default. StrSubstitutor sees
 the variable reference (${amount}), notes that the character ($) before
 the variable reference is _not_ the user-defined escape character, and so
 replaces ${amount} with the appropriate value form the map.

 Regards,
 Anthony Brice

 On Thu, Jul 23, 2015 at 11:24 AM, Anthony Brice 
 anthonybr...@lateachiever.com wrote:

 The escape character just tells StrSubstitutor Ignore the following
 variable reference. When you change the default escape character, you
 don't need to use it get a dollar sign before a variable reference in your
 interpolated string. Try the following:

 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);

 final StrSubstitutor sub = new StrSubstitutor(values);
 sub.setEscapeChar('');

 String replaceTemplate = The ${animal} jumps over the
 ${target}.;
 String expectedResult = The ${animal} jumps over the lazy dog.;
 String replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);

 replaceTemplate = The ${animal} paid $${amount} to jump over
 the ${target}.;
 expectedResult = The quick brown fox paid $20.00 to jump over
 the lazy dog.;
 replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);
 }

 Regards,
 Anthony Brice


 On Thu, Jul 23, 2015 at 7:42 AM, Woonsan Ko woon...@apache.org wrote:

 Sorry, the example was incomplete. It should be like this:

 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);

 final StrSubstitutor sub = new StrSubstitutor(values);
 sub.setEscapeChar('');

 String replaceTemplate = The ${animal} jumps over the
 ${target}.;
 String expectedResult = The ${animal} jumps over the lazy dog.;
 String replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);

 replaceTemplate = The ${animal} paid $${amount} to jump over
 the ${target}.;
 expectedResult = The quick brown fox paid $20.00 to jump over
 the lazy dog.;
 replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);
 }

 The second assertion failed. So, it seems working in case of
 ${animal}, but not working in case of $${amount}.


 testReplaceEscapingDollarSign(org.apache.commons.lang3.text.StrSubstitutorTest)
  Time elapsed: 0.009 sec   FAILURE!
 org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
 to jump over ... but was:...uick brown fox paid []$20.00 to jump
 over ...

 Regards,

 Woonsan

 On Thu, Jul 23, 2015 at 10:28 AM, Woonsan Ko woon...@apache.org wrote:
  Hi Anthony,
 
  Putting '$20.00' into the map is not an option in my use case, so I
  tried to use a different escape character. But it doesn't seem to be
  working either (another bug?):
 
  @Test
  public void testReplaceEscapingDollarSign() {
  values.put(amount, 20.00);
 
  final StrSubstitutor sub = new StrSubstitutor(values);
  sub.setEscapeChar('');
 
  String replaceTemplate = The ${animal} jumps over the
 ${target}.;
  String expectedResult = The ${animal} jumps over the lazy
 dog.;
  String replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
 
  //...
  }
 
  It fails like this:
 
  org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
  to jump over ... but was:...uick brown fox paid []$20.00 to jump
  over ...
  at org.junit.Assert.assertEquals(Assert.java:115)
  at org.junit.Assert.assertEquals(Assert.java:144)
  at
 org.apache.commons.lang3.text.StrSubstitutorTest.testReplaceEscapingDollarSign(StrSubstitutorTest.java:182)
 
  I think I'd better file a bug regard to escape character handling.
 
  Regards,
 
  Woonsan
 
 
 
  On Wed, Jul 22, 2015 at 9:12 PM, Anthony Brice
  anthonybr...@lateachiever.com wrote:
  It's not a bug---that's a feature! :p
 
  From the javadoc: If 

[dbcp] Abandon Connection - not Logging in standalone

2015-07-23 Thread Bernd Eckenfels
Hello,

I noticed that with Oracle drivers you cannot kill a busy connection
by closing it (since close(), _getPC(), isOpen() and stmt.close() all
will synchronize on the (busy) physical connection.

I noticed this in a custom persistence layer, so I thought to check out
if DBCP handles this situation.

I have a test program here:

https://gist.github.com/ecki/345ee08ac97820972fe7

First of all it does not log DBCP messages. I am not sure what is
needed to get it going. As you can see in the output the deliberate
debug() message is printed so the general LogFactory should be set up.

When I run the program with acfg.setRemoveAbandonedTimeout(12) it
suceeds, since the c3 is only idle for 10s. When I run it with (4) it
will (so it seems) close the connection and I get a exception on next
use. However I dont see a log message about the abandoned connection
and the usage tracking. Ideas?

A second thing, from the abandoned tracker I had the impression the
usage is counted at the begin of exec. So if a execution takes 20s as
in my case, it should be considered abandoned. But it seems not to be
the case. Is it recognizing it is busy when the exec does not return?
If this is the case, is there also a way to kill/destroy connections
beeing used too long?

Gruss
Bernd

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Anthony Brice
No problem! I'm happy to have helped. Happy substituting!

Cheers,
Anthony Brice

On Thu, Jul 23, 2015 at 1:23 PM, Woonsan Ko woon...@apache.org wrote:

 Gotcha! Now I can understand the escape character means: Ignore the
 following variable reference.
 Thank you so much for the explanation with a good solution.

 Cheers,

 Woonsan

 On Thu, Jul 23, 2015 at 2:42 PM, Anthony Brice
 anthonybr...@lateachiever.com wrote:
  Sorry, the second sentence in the first paragraph should read: When you
  change the default escape character, you don't need to use it _to_ get a
  dollar sign before a variable reference in your interpolated string.
 
  To explain a little more, consider what happens to  $${amount} when
  you're using StrSubstitutor's default escape character. StrSubstitutor
 sees
  that you've got a variable reference (${amount}), and that you've got
 the
  escape character ($) before it, so it replaces $${amount} with
  ${amount}.
 
  Now consider what happens to  $${amount} when you've set
 StrSubstitutor's
  escape character to something other than the default. StrSubstitutor sees
  the variable reference (${amount}), notes that the character ($)
 before
  the variable reference is _not_ the user-defined escape character, and so
  replaces ${amount} with the appropriate value form the map.
 
  Regards,
  Anthony Brice
 
  On Thu, Jul 23, 2015 at 11:24 AM, Anthony Brice 
  anthonybr...@lateachiever.com wrote:
 
  The escape character just tells StrSubstitutor Ignore the following
  variable reference. When you change the default escape character, you
  don't need to use it get a dollar sign before a variable reference in
 your
  interpolated string. Try the following:
 
  @Test
  public void testReplaceEscapingDollarSign() {
  values.put(amount, 20.00);
 
  final StrSubstitutor sub = new StrSubstitutor(values);
  sub.setEscapeChar('');
 
  String replaceTemplate = The ${animal} jumps over the
  ${target}.;
  String expectedResult = The ${animal} jumps over the lazy
 dog.;
  String replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
 
  replaceTemplate = The ${animal} paid $${amount} to jump over
  the ${target}.;
  expectedResult = The quick brown fox paid $20.00 to jump over
  the lazy dog.;
  replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
  }
 
  Regards,
  Anthony Brice
 
 
  On Thu, Jul 23, 2015 at 7:42 AM, Woonsan Ko woon...@apache.org wrote:
 
  Sorry, the example was incomplete. It should be like this:
 
  @Test
  public void testReplaceEscapingDollarSign() {
  values.put(amount, 20.00);
 
  final StrSubstitutor sub = new StrSubstitutor(values);
  sub.setEscapeChar('');
 
  String replaceTemplate = The ${animal} jumps over the
  ${target}.;
  String expectedResult = The ${animal} jumps over the lazy
 dog.;
  String replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
 
  replaceTemplate = The ${animal} paid $${amount} to jump over
  the ${target}.;
  expectedResult = The quick brown fox paid $20.00 to jump over
  the lazy dog.;
  replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
  }
 
  The second assertion failed. So, it seems working in case of
  ${animal}, but not working in case of $${amount}.
 
 
 
 testReplaceEscapingDollarSign(org.apache.commons.lang3.text.StrSubstitutorTest)
   Time elapsed: 0.009 sec   FAILURE!
  org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
  to jump over ... but was:...uick brown fox paid []$20.00 to jump
  over ...
 
  Regards,
 
  Woonsan
 
  On Thu, Jul 23, 2015 at 10:28 AM, Woonsan Ko woon...@apache.org
 wrote:
   Hi Anthony,
  
   Putting '$20.00' into the map is not an option in my use case, so I
   tried to use a different escape character. But it doesn't seem to be
   working either (another bug?):
  
   @Test
   public void testReplaceEscapingDollarSign() {
   values.put(amount, 20.00);
  
   final StrSubstitutor sub = new StrSubstitutor(values);
   sub.setEscapeChar('');
  
   String replaceTemplate = The ${animal} jumps over the
  ${target}.;
   String expectedResult = The ${animal} jumps over the lazy
  dog.;
   String replacedResult = sub.replace(replaceTemplate);
   assertEquals(expectedResult, replacedResult);
  
   //...
   }
  
   It fails like this:
  
   org.junit.ComparisonFailure: expected:...uick brown fox paid
 []$20.00
   to jump over ... but was:...uick brown fox paid []$20.00 to jump
   over ...
   at org.junit.Assert.assertEquals(Assert.java:115)
   at org.junit.Assert.assertEquals(Assert.java:144)
   at
 
 

Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Woonsan Ko
Hi Anthony,

Putting '$20.00' into the map is not an option in my use case, so I
tried to use a different escape character. But it doesn't seem to be
working either (another bug?):

@Test
public void testReplaceEscapingDollarSign() {
values.put(amount, 20.00);

final StrSubstitutor sub = new StrSubstitutor(values);
sub.setEscapeChar('');

String replaceTemplate = The ${animal} jumps over the ${target}.;
String expectedResult = The ${animal} jumps over the lazy dog.;
String replacedResult = sub.replace(replaceTemplate);
assertEquals(expectedResult, replacedResult);

//...
}

It fails like this:

org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
to jump over ... but was:...uick brown fox paid []$20.00 to jump
over ...
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at 
org.apache.commons.lang3.text.StrSubstitutorTest.testReplaceEscapingDollarSign(StrSubstitutorTest.java:182)

I think I'd better file a bug regard to escape character handling.

Regards,

Woonsan



On Wed, Jul 22, 2015 at 9:12 PM, Anthony Brice
anthonybr...@lateachiever.com wrote:
 It's not a bug---that's a feature! :p

 From the javadoc: If this character ['$'] is placed before a variable
 reference, this reference is ignored and won't be replaced. So even when
 you use three dollar signs, you still have a variable reference
 (${amount}) with the escape character placed before it, thus the variable
 reference will not be replaced.

 To achieve your desired effect, I think you either have to put the dollar
 sign in the mapping (e.g., values.put(amount, $20.00), use different
 delimiters, or just set a different escape character.

 Regards,
 Anthony Brice

 On Wed, Jul 22, 2015 at 2:50 PM, Woonsan Ko woon...@apache.org wrote:

 Hi there,

 I tried to use the following, expecting ...ick brown fox paid $20.00
 to jump over the la…:

 // In org.apache.commons.lang3.text.StrSubstitutorTest.java locally
 // after cloning https://github.com/woonsan/commons-lang.
 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);
 doTestReplace(The quick brown fox paid $20.00 to jump over
 the lazy dog.,
   The ${animal} paid $$${amount} to jump over the
 ${target}., true);
 }

 (I put double dollar signs like $$${amount} because $ is the default
 escape character.)

 But, the result was:...ick brown fox paid $${amount} to jump over the
 la….

 Is it a bug or did I miss something?

 Regards,

 Woonsan

 -
 To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
 For additional commands, e-mail: user-h...@commons.apache.org



-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Woonsan Ko
Sorry, the example was incomplete. It should be like this:

@Test
public void testReplaceEscapingDollarSign() {
values.put(amount, 20.00);

final StrSubstitutor sub = new StrSubstitutor(values);
sub.setEscapeChar('');

String replaceTemplate = The ${animal} jumps over the ${target}.;
String expectedResult = The ${animal} jumps over the lazy dog.;
String replacedResult = sub.replace(replaceTemplate);
assertEquals(expectedResult, replacedResult);

replaceTemplate = The ${animal} paid $${amount} to jump over
the ${target}.;
expectedResult = The quick brown fox paid $20.00 to jump over
the lazy dog.;
replacedResult = sub.replace(replaceTemplate);
assertEquals(expectedResult, replacedResult);
}

The second assertion failed. So, it seems working in case of
${animal}, but not working in case of $${amount}.

testReplaceEscapingDollarSign(org.apache.commons.lang3.text.StrSubstitutorTest)
 Time elapsed: 0.009 sec   FAILURE!
org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
to jump over ... but was:...uick brown fox paid []$20.00 to jump
over ...

Regards,

Woonsan

On Thu, Jul 23, 2015 at 10:28 AM, Woonsan Ko woon...@apache.org wrote:
 Hi Anthony,

 Putting '$20.00' into the map is not an option in my use case, so I
 tried to use a different escape character. But it doesn't seem to be
 working either (another bug?):

 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);

 final StrSubstitutor sub = new StrSubstitutor(values);
 sub.setEscapeChar('');

 String replaceTemplate = The ${animal} jumps over the ${target}.;
 String expectedResult = The ${animal} jumps over the lazy dog.;
 String replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);

 //...
 }

 It fails like this:

 org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
 to jump over ... but was:...uick brown fox paid []$20.00 to jump
 over ...
 at org.junit.Assert.assertEquals(Assert.java:115)
 at org.junit.Assert.assertEquals(Assert.java:144)
 at 
 org.apache.commons.lang3.text.StrSubstitutorTest.testReplaceEscapingDollarSign(StrSubstitutorTest.java:182)

 I think I'd better file a bug regard to escape character handling.

 Regards,

 Woonsan



 On Wed, Jul 22, 2015 at 9:12 PM, Anthony Brice
 anthonybr...@lateachiever.com wrote:
 It's not a bug---that's a feature! :p

 From the javadoc: If this character ['$'] is placed before a variable
 reference, this reference is ignored and won't be replaced. So even when
 you use three dollar signs, you still have a variable reference
 (${amount}) with the escape character placed before it, thus the variable
 reference will not be replaced.

 To achieve your desired effect, I think you either have to put the dollar
 sign in the mapping (e.g., values.put(amount, $20.00), use different
 delimiters, or just set a different escape character.

 Regards,
 Anthony Brice

 On Wed, Jul 22, 2015 at 2:50 PM, Woonsan Ko woon...@apache.org wrote:

 Hi there,

 I tried to use the following, expecting ...ick brown fox paid $20.00
 to jump over the la…:

 // In org.apache.commons.lang3.text.StrSubstitutorTest.java locally
 // after cloning https://github.com/woonsan/commons-lang.
 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);
 doTestReplace(The quick brown fox paid $20.00 to jump over
 the lazy dog.,
   The ${animal} paid $$${amount} to jump over the
 ${target}., true);
 }

 (I put double dollar signs like $$${amount} because $ is the default
 escape character.)

 But, the result was:...ick brown fox paid $${amount} to jump over the
 la….

 Is it a bug or did I miss something?

 Regards,

 Woonsan

 -
 To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
 For additional commands, e-mail: user-h...@commons.apache.org



-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Woonsan Ko
On Thu, Jul 23, 2015 at 4:21 AM, Jörg Schaible
joerg.schai...@swisspost.com wrote:
 Hi Woonsan,

 Woonsan Ko wrote:

 Hi there,

 I tried to use the following, expecting ...ick brown fox paid $20.00
 to jump over the la…:

 // In org.apache.commons.lang3.text.StrSubstitutorTest.java locally
 // after cloning https://github.com/woonsan/commons-lang.
 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);
 doTestReplace(The quick brown fox paid $20.00 to jump over
 the lazy dog.,
   The ${animal} paid $$${amount} to jump over the
 ${target}., true);
 }

 (I put double dollar signs like $$${amount} because $ is the default
 escape character.)

 But, the result was:...ick brown fox paid $${amount} to jump over the
 la….

 Is it a bug or did I miss something?

 I'd call it a bug. You escaped the first dollar sign properly.

I think so, too. I've just filed a bug:
- https://issues.apache.org/jira/browse/LANG-1158

Cheers,

Woonsan


 Cheers,
 Jörg


 -
 To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
 For additional commands, e-mail: user-h...@commons.apache.org


-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Anthony Brice
The escape character just tells StrSubstitutor Ignore the following
variable reference. When you change the default escape character, you
don't need to use it get a dollar sign before a variable reference in your
interpolated string. Try the following:

@Test
public void testReplaceEscapingDollarSign() {
values.put(amount, 20.00);

final StrSubstitutor sub = new StrSubstitutor(values);
sub.setEscapeChar('');

String replaceTemplate = The ${animal} jumps over the ${target}.;
String expectedResult = The ${animal} jumps over the lazy dog.;
String replacedResult = sub.replace(replaceTemplate);
assertEquals(expectedResult, replacedResult);

replaceTemplate = The ${animal} paid $${amount} to jump over
the ${target}.;
expectedResult = The quick brown fox paid $20.00 to jump over
the lazy dog.;
replacedResult = sub.replace(replaceTemplate);
assertEquals(expectedResult, replacedResult);
}

Regards,
Anthony Brice


On Thu, Jul 23, 2015 at 7:42 AM, Woonsan Ko woon...@apache.org wrote:

 Sorry, the example was incomplete. It should be like this:

 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);

 final StrSubstitutor sub = new StrSubstitutor(values);
 sub.setEscapeChar('');

 String replaceTemplate = The ${animal} jumps over the
 ${target}.;
 String expectedResult = The ${animal} jumps over the lazy dog.;
 String replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);

 replaceTemplate = The ${animal} paid $${amount} to jump over
 the ${target}.;
 expectedResult = The quick brown fox paid $20.00 to jump over
 the lazy dog.;
 replacedResult = sub.replace(replaceTemplate);
 assertEquals(expectedResult, replacedResult);
 }

 The second assertion failed. So, it seems working in case of
 ${animal}, but not working in case of $${amount}.


 testReplaceEscapingDollarSign(org.apache.commons.lang3.text.StrSubstitutorTest)
  Time elapsed: 0.009 sec   FAILURE!
 org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
 to jump over ... but was:...uick brown fox paid []$20.00 to jump
 over ...

 Regards,

 Woonsan

 On Thu, Jul 23, 2015 at 10:28 AM, Woonsan Ko woon...@apache.org wrote:
  Hi Anthony,
 
  Putting '$20.00' into the map is not an option in my use case, so I
  tried to use a different escape character. But it doesn't seem to be
  working either (another bug?):
 
  @Test
  public void testReplaceEscapingDollarSign() {
  values.put(amount, 20.00);
 
  final StrSubstitutor sub = new StrSubstitutor(values);
  sub.setEscapeChar('');
 
  String replaceTemplate = The ${animal} jumps over the
 ${target}.;
  String expectedResult = The ${animal} jumps over the lazy dog.;
  String replacedResult = sub.replace(replaceTemplate);
  assertEquals(expectedResult, replacedResult);
 
  //...
  }
 
  It fails like this:
 
  org.junit.ComparisonFailure: expected:...uick brown fox paid []$20.00
  to jump over ... but was:...uick brown fox paid []$20.00 to jump
  over ...
  at org.junit.Assert.assertEquals(Assert.java:115)
  at org.junit.Assert.assertEquals(Assert.java:144)
  at
 org.apache.commons.lang3.text.StrSubstitutorTest.testReplaceEscapingDollarSign(StrSubstitutorTest.java:182)
 
  I think I'd better file a bug regard to escape character handling.
 
  Regards,
 
  Woonsan
 
 
 
  On Wed, Jul 22, 2015 at 9:12 PM, Anthony Brice
  anthonybr...@lateachiever.com wrote:
  It's not a bug---that's a feature! :p
 
  From the javadoc: If this character ['$'] is placed before a variable
  reference, this reference is ignored and won't be replaced. So even
 when
  you use three dollar signs, you still have a variable reference
  (${amount}) with the escape character placed before it, thus the
 variable
  reference will not be replaced.
 
  To achieve your desired effect, I think you either have to put the
 dollar
  sign in the mapping (e.g., values.put(amount, $20.00), use
 different
  delimiters, or just set a different escape character.
 
  Regards,
  Anthony Brice
 
  On Wed, Jul 22, 2015 at 2:50 PM, Woonsan Ko woon...@apache.org wrote:
 
  Hi there,
 
  I tried to use the following, expecting ...ick brown fox paid $20.00
  to jump over the la…:
 
  // In org.apache.commons.lang3.text.StrSubstitutorTest.java locally
  // after cloning https://github.com/woonsan/commons-lang.
  @Test
  public void testReplaceEscapingDollarSign() {
  values.put(amount, 20.00);
  doTestReplace(The quick brown fox paid $20.00 to jump over
  the lazy dog.,
The ${animal} paid $$${amount} to jump over the
  ${target}., true);
  }
 
  (I put double dollar signs like $$${amount} because $ is the default
  escape character.)
 
  But, the result was:...ick 

Re: [lang] StrSubstitutor - a dollar sign before a variable

2015-07-23 Thread Jörg Schaible
Hi Woonsan,

Woonsan Ko wrote:

 Hi there,
 
 I tried to use the following, expecting ...ick brown fox paid $20.00
 to jump over the la…:
 
 // In org.apache.commons.lang3.text.StrSubstitutorTest.java locally
 // after cloning https://github.com/woonsan/commons-lang.
 @Test
 public void testReplaceEscapingDollarSign() {
 values.put(amount, 20.00);
 doTestReplace(The quick brown fox paid $20.00 to jump over
 the lazy dog.,
   The ${animal} paid $$${amount} to jump over the
 ${target}., true);
 }
 
 (I put double dollar signs like $$${amount} because $ is the default
 escape character.)
 
 But, the result was:...ick brown fox paid $${amount} to jump over the
 la….
 
 Is it a bug or did I miss something?

I'd call it a bug. You escaped the first dollar sign properly.

Cheers,
Jörg


-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org