Repository: apache/shardingsphere
Issue: Upgrade from 3.0.0 to 3.1.0.M1 error reporting，java.lang.NullPointerException: Cannot invoke method mod() on null object

sharding code:
> sharding database column name : traceId
  sharding strategy :ds${traceId%4}
```
      // 配置真实数据源
        Map<String, DataSource> dataSourceMap = new HashMap<>();
        dataSourceMap.put("ds0",ds0DataSource());
        dataSourceMap.put("ds1",ds1DataSource());
        dataSourceMap.put("ds2",ds2DataSource());
        dataSourceMap.put("ds3",ds3DataSource());
        dataSourceMap.put("mainDataSource",mainDataSource());

        // 配置Order表规则
        TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration();
        orderTableRuleConfig.setLogicTable("push_message");
        orderTableRuleConfig.setActualDataNodes("ds${0..3}.push_message");

        //分布式主键
        orderTableRuleConfig.setKeyGeneratorColumnName("id");
        ShardingDefaultKeyGenerator shardingDefaultKeyGenerator = new ShardingDefaultKeyGenerator();
        orderTableRuleConfig.setKeyGenerator(shardingDefaultKeyGenerator);

        // 配置分库策略
        orderTableRuleConfig.setDatabaseShardingStrategyConfig(
                new InlineShardingStrategyConfiguration("traceId", "ds${traceId%4}"));

        // 配置分片规则
        ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
        shardingRuleConfig.getTableRuleConfigs().add(orderTableRuleConfig);
        shardingRuleConfig.setDefaultDataSourceName("mainDataSource");

        Properties properties = new Properties();
        properties.setProperty("sql.show","true");
        properties.setProperty("max.connections.size.per.query","200");
        properties.setProperty("executor.size",String.valueOf(Runtime.getRuntime().availableProcessors() * 2));

        DataSource dataSource = ShardingDataSourceFactory.createDataSource(
                dataSourceMap, shardingRuleConfig, new ConcurrentHashMap(), properties);
        return dataSource
```

error info:
```
java.lang.NullPointerException: Cannot invoke method mod() on null object

	at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at Script2$_run_closure1.doCall(Script2.groovy:1)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019)
	at groovy.lang.Closure.call(Closure.java:426)
	at groovy.lang.Closure.call(Closure.java:420)
	at com.fly.ApplicationTests.testInline(ApplicationTests.java:98)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
```

sharding key is hump naming，calculating rote Error,
```java
    //InlineShardingStrategy.java 
    private String execute(final PreciseShardingValue shardingValue) {
        Closure<?> result = closure.rehydrate(new Expando(), null, null);
        result.setResolveStrategy(Closure.DELEGATE_ONLY);
        //method toLowerCase()
        result.setProperty(shardingValue.getColumnName().toLowerCase(), shardingValue.getValue());
        return result.call().toString();
    }
```
unit test :  
1. test fail
```
@Test
    public void testInline(){
        Closure<?> closure = new InlineExpressionParser("ds${traceId%4}").evaluateClosure();
        Closure<?> result = closure.rehydrate(new Expando(), null, null);
        result.setResolveStrategy(Closure.DELEGATE_ONLY);
        PreciseShardingValue shardingValue = new PreciseShardingValue("push_message","traceId",342342);
        result.setProperty(shardingValue.getColumnName().toLowerCase(), shardingValue.getValue());
        System.out.println("--------:"+result.call().toString());
    }
```
2. test pass
```
@Test
    public void testInline(){
        Closure<?> closure = new InlineExpressionParser("ds${traceid%4}").evaluateClosure();
        Closure<?> result = closure.rehydrate(new Expando(), null, null);
        result.setResolveStrategy(Closure.DELEGATE_ONLY);
        PreciseShardingValue shardingValue = new PreciseShardingValue("push_message","traceId",342342);
        result.setProperty(shardingValue.getColumnName().toLowerCase(), shardingValue.getValue());
        System.out.println("--------:"+result.call().toString());
    }
```

Changed files:
sharding-core/src/main/java/io/shardingsphere/core/routing/strategy/inline/InlineShardingStrategy.java

diff --git a/sharding-core/src/main/java/io/shardingsphere/core/routing/strategy/inline/InlineShardingStrategy.java b/sharding-core/src/main/java/io/shardingsphere/core/routing/strategy/inline/InlineShardingStrategy.java
index 4923c1d4d37..cd7e7ed2691 100644
--- a/sharding-core/src/main/java/io/shardingsphere/core/routing/strategy/inline/InlineShardingStrategy.java
+++ b/sharding-core/src/main/java/io/shardingsphere/core/routing/strategy/inline/InlineShardingStrategy.java
@@ -82,7 +82,7 @@ public final class InlineShardingStrategy implements ShardingStrategy {
     private String execute(final PreciseShardingValue shardingValue) {
         Closure<?> result = closure.rehydrate(new Expando(), null, null);
         result.setResolveStrategy(Closure.DELEGATE_ONLY);
-        result.setProperty(shardingValue.getColumnName().toLowerCase(), shardingValue.getValue());
+        result.setProperty(shardingValue.getColumnName(), shardingValue.getValue());
         return result.call().toString();
     }