[OLINGO-1032] Fix for function import return entity having multiplicity true was giving error.

Signed-off-by: mibo <mibo@apache.org>
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
index c83b128..20a9f9b 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/JsonEntityProvider.java
@@ -326,7 +326,9 @@
       final EntityProviderReadProperties properties) throws EntityProviderException {
     try {
       if (functionImport.getReturnType().getType().getKind() == EdmTypeKind.ENTITY) {
-        return new JsonEntityConsumer().readEntry(functionImport.getEntitySet(), content, properties);
+        return functionImport.getReturnType().getMultiplicity() == EdmMultiplicity.MANY
+            ? new JsonEntityConsumer().readFeed(functionImport.getEntitySet(), content, properties)
+            : new JsonEntityConsumer().readEntry(functionImport.getEntitySet(), content, properties);
       } else {
         final EntityPropertyInfo info = EntityInfoAggregator.create(functionImport);
         return functionImport.getReturnType().getMultiplicity() == EdmMultiplicity.MANY ?
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
index 40e5e0b..c51c6de 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/ep/ProviderFacadeImplTest.java
@@ -35,8 +35,6 @@
 import java.util.Locale;
 import java.util.Map;
 
-import junit.framework.Assert;
-
 import org.apache.olingo.odata2.api.commons.HttpContentType;
 import org.apache.olingo.odata2.api.commons.HttpStatusCodes;
 import org.apache.olingo.odata2.api.edm.Edm;
@@ -60,6 +58,8 @@
 import org.apache.olingo.odata2.testutil.mock.MockFacade;
 import org.junit.Test;
 
+import junit.framework.Assert;
+
 /**
  *  
  */
@@ -227,6 +227,68 @@
   }
 
   @Test
+  public void readMultipleEntityFunctionImport() throws Exception {
+    final EdmFunctionImport functionImport = MockFacade.getMockEdm().getDefaultEntityContainer()
+        .getFunctionImport("EmployeeSearch");
+    InputStream content = new ByteArrayInputStream(
+        ("{\"d\": {"
+            + "\"results\": [{"
+            + "\"__metadata\": {"
+            + "\"type\": \"RefScenario.Employee\","
+            + "\"content_type\": \"image/jpeg\","
+            + "\"media_src\":\"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/$value\","
+            + "\"edit_media\":\"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/$value\""
+            + "},"
+            + "\"EmployeeId\": \"3\","
+            + "\"EmployeeName\": \"Jonathan Smith\","
+            + "\"ManagerId\": \"1\","
+            + "\"RoomId\": \"2\","
+            + "\"TeamId\": \"1\","
+            + "\"Location\": {"
+            + "\"__metadata\": {"
+            + "\"type\": \"RefScenario.c_Location\""
+            + "},"
+            + "\"City\": {"
+            + "\"__metadata\": {"
+            + "\"type\": \"RefScenario.c_City\""
+            + "},"
+            + "\"PostalCode\": \"69190\","
+            + "\"CityName\": \"Walldorf\""
+            + "},"
+            + "\"Country\": \"Germany\""
+            + "},"
+            + "\"Age\": 56,"
+            + "\"EntryDate\": null,"
+            + "\"ImageUrl\": \"Employees('3')/$value\","
+            + "\"ne_Manager\": {"
+            + "\"__deferred\": {"
+            + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Manager\""
+            + "}"
+            + "},"
+            + "\"ne_Team\": {"
+            + "\"__deferred\": {"
+            + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Team\""
+            + "}"
+            + "},"
+            + "\"ne_Room\": {"
+            + "\"__deferred\": {"
+            + "\"uri\": \"http://localhost:19000/abc/FunctionImportJsonTest/Employees('3')/ne_Room\""
+            + "}"
+            + "}"
+            + "}]"
+            + "}"
+            + "}").getBytes("UTF-8"));
+    final Object result = new ProviderFacadeImpl().readFunctionImport(HttpContentType.APPLICATION_JSON,
+        functionImport, content, EntityProviderReadProperties.init().build());
+    ODataDeltaFeed feed = (ODataDeltaFeed) result;
+    List<ODataEntry> entries = feed.getEntries();
+    int size = entries.size();
+    assertEquals(1, size);
+    String id = (String) entries.get(0).getProperties().get("EmployeeId");
+    assertEquals("3", id);
+  }
+
+  @Test
   public void readLink() throws Exception {
     final EdmEntitySet entitySet = MockFacade.getMockEdm().getDefaultEntityContainer().getEntitySet("Rooms");
     InputStream content = new ByteArrayInputStream("{\"d\":{\"uri\":\"http://somelink\"}}".getBytes("UTF-8"));