[OLINGO-1446]Allow empty parameters for actions and action imports when there is no non binding parameter defined
diff --git a/lib/server-core/pom.xml b/lib/server-core/pom.xml
index a5f792c..dade12b 100644
--- a/lib/server-core/pom.xml
+++ b/lib/server-core/pom.xml
@@ -83,7 +83,6 @@
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
-      <scope>test</scope>
     </dependency>
   </dependencies>
 
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index 1be729e..ac29475 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -18,6 +18,8 @@
  */
 package org.apache.olingo.server.core.deserializer.json;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
@@ -32,6 +34,7 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.IConstants;
 import org.apache.olingo.commons.api.constants.Constantsv00;
@@ -304,14 +307,23 @@
   @Override
   public DeserializerResult actionParameters(final InputStream stream, final EdmAction edmAction)
       throws DeserializerException {
+	  Map<String, Parameter> parameters = new HashMap<>();
+	  ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+	  byte[] inputContent = null;
     try {
-      ObjectNode tree = parseJsonTree(stream);
-      Map<String, Parameter> parameters = consumeParameters(edmAction, tree);
-
-      if (tree.isObject()) {
-        removeAnnotations(tree);
-      }
-      assertJsonNodeIsEmpty(tree);
+    	IOUtils.copy(stream, byteArrayOutputStream);
+    	// copy the content of input stream to reuse it
+      	  inputContent = byteArrayOutputStream.toByteArray();
+      	  if (inputContent.length > 0) {
+      		InputStream inputStream1 = new ByteArrayInputStream(inputContent);
+    	      ObjectNode tree = parseJsonTree(inputStream1);
+    	      parameters = consumeParameters(edmAction, tree);
+    	
+    	      if (tree.isObject()) {
+    	        removeAnnotations(tree);
+    	      }
+    	      assertJsonNodeIsEmpty(tree);
+      	  }
       return DeserializerResultImpl.with().actionParameters(parameters).build();
 
     } catch (final IOException e) {
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerActionParametersTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerActionParametersTest.java
index b1f020e..ba4462d 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerActionParametersTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerActionParametersTest.java
@@ -206,8 +206,10 @@
 
   @Test
   public void noContent() throws Exception {
-    expectException("", "UARTTwoParam", null, MessageKeys.JSON_SYNTAX_EXCEPTION);
-    expectException("", "BAETAllPrimRT", "ETAllPrim", MessageKeys.JSON_SYNTAX_EXCEPTION);
+	  Map<String, Parameter> parameters = deserialize("", "UARTTwoParam", null);
+	  assertNotNull(parameters);
+	  parameters = deserialize("", "BAETAllPrimRT", "ETAllPrim");
+	  assertNotNull(parameters);
   }
 
   @Test