[OLINGO-626] [OLINGO-623] Fix query parameter parsing
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
index 5187411..e39d3af 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/mock/ODataContextMock.java
@@ -18,14 +18,10 @@
  ******************************************************************************/
 package org.apache.olingo.odata2.jpa.processor.core.mock;
 
-import java.net.URI;
-import java.util.List;
-
 import org.apache.olingo.odata2.api.ODataService;
 import org.apache.olingo.odata2.api.exception.ODataException;
 import org.apache.olingo.odata2.api.processor.ODataContext;
 import org.apache.olingo.odata2.api.uri.PathInfo;
-import org.apache.olingo.odata2.api.uri.PathSegment;
 import org.easymock.EasyMock;
 
 public class ODataContextMock {
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
index b36f873..e4b67d5 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/batch/v2/BatchParserCommon.java
@@ -242,17 +242,13 @@
 
         for (String parameter : parameters) {
           String[] parameterParts = parameter.split("=");
-          String parameterName = parameterParts[0].toLowerCase(Locale.ENGLISH);
+          String parameterName = parameterParts[0];
 
           if (parameterParts.length == 2) {
             List<String> valueList = queryParameter.get(parameterName);
             valueList = valueList == null ? new LinkedList<String>() : valueList;
             queryParameter.put(parameterName, valueList);
-
-            String[] valueParts = parameterParts[1].split(",");
-            for (String value : valueParts) {
-              valueList.add(Decoder.decode(value));
-            }
+            valueList.add(Decoder.decode(parameterParts[1]));
           }
         }
       }
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
index 4ec24f6..2abff6e 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/producer/JsonServiceDocumentProducerTest.java
@@ -25,7 +25,6 @@
 import static org.mockito.Mockito.when;
 
 import java.io.InputStream;
-import java.net.URI;
 import java.util.Arrays;
 
 import org.apache.olingo.odata2.api.ODataServiceVersion;
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
index de5f291..a6a297d 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/ref/BatchTest.java
@@ -55,6 +55,24 @@
         .contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
     assertTrue(responseBody.contains("<edmx:Edmx Version=\"1.0\""));
   }
+  
+  @Test
+  public void functionImportBatch() throws Exception {
+	    String responseBody = execute("/functionImport.batch");
+	    assertFalse(responseBody
+	        .contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
+	    assertTrue(responseBody.contains("HTTP/1.1 200 OK"));
+	    assertTrue(responseBody.contains("<?xml version='1.0' encoding='utf-8'?><ManagerPhoto xmlns="));
+  }
+  
+  @Test
+  public void employeesWithFilterBatch() throws Exception {
+	    String responseBody = execute("/employeesWithFilter.batch");
+	    assertFalse(responseBody
+	        .contains("<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">"));
+	    assertTrue(responseBody.contains("HTTP/1.1 200 OK"));
+	    assertTrue(responseBody.contains("<d:EmployeeName>Walter Winter</d:EmployeeName>"));
+  }
 
   @Test
   public void testChangeSetBatch() throws Exception {
diff --git a/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch b/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch
new file mode 100644
index 0000000..e3ee7a9
--- /dev/null
+++ b/odata2-lib/odata-fit/src/test/resources/employeesWithFilter.batch
@@ -0,0 +1,8 @@
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding:binary
+
+GET Employees?$filter=substringof('Walter',EmployeeName) HTTP/1.1
+
+
+--batch_123--
\ No newline at end of file
diff --git a/odata2-lib/odata-fit/src/test/resources/functionImport.batch b/odata2-lib/odata-fit/src/test/resources/functionImport.batch
new file mode 100644
index 0000000..c6ee1f2
--- /dev/null
+++ b/odata2-lib/odata-fit/src/test/resources/functionImport.batch
@@ -0,0 +1,8 @@
+--batch_123
+Content-Type: application/http
+Content-Transfer-Encoding:binary
+
+GET ManagerPhoto?Id='1' HTTP/1.1
+
+
+--batch_123--
\ No newline at end of file