title: Parsing of YAML file with Jackson fails if value starts with special character
body: <p>I am trying to parse the following YAML-content:</p>
  <pre class="lang-yaml prettyprint-override"><code>template:
      amplitude: 5
      noise: +-0.01  
  </code></pre>
  <p>This fails with this exception:</p>
  <pre><code>com.fasterxml.jackson.databind.JsonMappingException: empty String (through reference chain: ... -&gt;my.package.Template[&quot;noise&quot;])
  </code></pre>
  <p>The class <code>Template</code> contains a property <code>noise</code> of type <code>FlexValue</code>. I made a custom <code>JsonDeserializer</code> that is responsible to parse the values for properties of this type. The notation allows somewhat fancy expressions, hence the name <code>FlexValue</code> for the type. The value in this example, &quot;+-0.01&quot;, is a valid input for the deserializer. However, it seems like the deserializer isn't even called. <strong>The exception seems to be thrown before that.</strong></p>
  <p>Here is the relevant class definition of my custom deserializer:</p>
  <pre class="lang-kotlin prettyprint-override"><code>class FlexValueParser : JsonDeserializer&lt;FlexValue&gt;() {
  
      override fun deserialize(p: JsonParser?, ctxt: DeserializationContext?): FlexValue {
          //...
      }
  
  }
  </code></pre>
  <p>The custom deserializer is registered as follows:</p>
  <pre class="lang-kotlin prettyprint-override"><code>@JsonDeserialize(using = FlexValueParser::class)
  class FlexValue {
      // ...
  }
  </code></pre>
  <p>This setup seems to work fine. It does on other types as well, which are parsed differently.</p>
  <p>If I prepend a &quot;0&quot; before &quot;+-&quot;, which is also a valid input, it works:</p>
  <pre class="lang-yaml prettyprint-override"><code>template:
      amplitude: 5
      noise: 0+-0.01
  </code></pre>
  <p>Is &quot;+-&quot; a special cahracter in YAML that causes Jackson to fail parsing it, because it tries to do something else than I expect? I expect it to treat the input &quot;+-0.01&quot; as a <code>String</code> because it doesn't represent a valid number input.</p>
  <p>The same problem occurs, when I use <code>noise: ~0.01</code>, which is also a valid input for my deserializer. The same exception is thrown on this and can be avoided by prepending a &quot;0&quot; before the curly &quot;~&quot;.</p>
  <p>Can someone give me a hint on this?</p>