You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2015/04/21 19:40:57 UTC

olingo-odata4 git commit: OLINGO-573: removing the type warnings during the build

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 05cbf674f -> fbdf9aadc


OLINGO-573: removing the type warnings during the build


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/fbdf9aad
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/fbdf9aad
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/fbdf9aad

Branch: refs/heads/master
Commit: fbdf9aadc8619b9d4004c554da32238144421ec6
Parents: 05cbf67
Author: Ramesh Reddy <ra...@jboss.org>
Authored: Tue Apr 21 12:38:36 2015 -0500
Committer: Ramesh Reddy <ra...@jboss.org>
Committed: Tue Apr 21 12:38:36 2015 -0500

----------------------------------------------------------------------
 .../olingo/server/core/ServiceDispatcher.java   |   1 +
 .../olingo/server/core/ServiceRequest.java      |  12 ++-
 .../server/core/requests/ActionRequest.java     |   1 +
 .../server/core/requests/DataRequest.java       |   1 +
 .../server/core/requests/FunctionRequest.java   |   1 +
 .../server/core/requests/OperationRequest.java  |   3 +-
 .../core/responses/NoContentResponse.java       |   2 +-
 .../core/responses/ServiceResponseVisior.java   |   1 -
 .../server/core/responses/StreamResponse.java   |   2 +-
 .../server/core/ServiceDispatcherTest.java      |   1 +
 .../olingo/server/example/TripPinDataModel.java | 101 ++++++++++---------
 .../olingo/server/example/TripPinHandler.java   |  50 +++++----
 .../server/example/TripPinServiceTest.java      |   4 +-
 .../olingo/server/example/TripPinServlet.java   |   3 +-
 14 files changed, 104 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceDispatcher.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceDispatcher.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceDispatcher.java
index 839d877..55ebcfc 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceDispatcher.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceDispatcher.java
@@ -103,6 +103,7 @@ public class ServiceDispatcher extends RequestURLHierarchyVisitor {
     // http://localhost/EntitySet(key)
     if (this.idOption != null) {
       try {
+        this.request.setODataRequest(odRequest);
         this.request = this.request.parseLink(new URI(this.idOption));
       } catch (URISyntaxException e) {
         throw new ODataHandlerException("Invalid $id value",

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceRequest.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceRequest.java
index 0fda018..13ec05f 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceRequest.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/ServiceRequest.java
@@ -20,6 +20,7 @@
 package org.apache.olingo.server.core;
 
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -139,6 +140,7 @@ public abstract class ServiceRequest {
     return this.request.getMethod() == HttpMethod.POST;
   }
 
+  @SuppressWarnings("unchecked")
   public <T> T getSerializerOptions(Class<T> serilizerOptions, ContextURL contextUrl,
       boolean references) throws ContentNegotiatorException {
     final ODataFormat format = ODataFormat.fromContentType(getResponseContentType());
@@ -240,13 +242,17 @@ public abstract class ServiceRequest {
     return null;
   }
 
-  public DataRequest parseLink(URI uri) throws UriParserException {
+  public DataRequest parseLink(URI uri) throws UriParserException, URISyntaxException {
+    String path = "/";
+    URI servicePath = new URI(getODataRequest().getRawBaseUri());
+    path = servicePath.getPath();
+    
     String rawPath = uri.getPath();
-    int e = rawPath.indexOf("/", 1);
+    int e = rawPath.indexOf(path);
     if (-1 == e) {
       rawPath = uri.getPath();
     } else {
-      rawPath = rawPath.substring(e);
+      rawPath = rawPath.substring(e+path.length());
     }
 
     UriInfo uriInfo = new Parser().parseUri(rawPath, uri.getQuery(), null,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/ActionRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/ActionRequest.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/ActionRequest.java
index 42ff6ba..a8bcd37 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/ActionRequest.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/ActionRequest.java
@@ -85,6 +85,7 @@ public class ActionRequest extends OperationRequest {
     return (isPOST());
   }
   
+  @SuppressWarnings("unchecked")
   @Override
   public <T> T getSerializerOptions(Class<T> serilizerOptions, ContextURL contextUrl, boolean references)
       throws ContentNegotiatorException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
index 8855486..fd3aa25 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/DataRequest.java
@@ -242,6 +242,7 @@ public class DataRequest extends ServiceRequest {
     this.type.execute(handler, response);
   }
 
+  @SuppressWarnings("unchecked")
   @Override
   public <T> T getSerializerOptions(Class<T> serilizerOptions, ContextURL contextUrl, boolean references)
       throws ContentNegotiatorException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/FunctionRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/FunctionRequest.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/FunctionRequest.java
index 6072495..ad3cd2f 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/FunctionRequest.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/FunctionRequest.java
@@ -80,6 +80,7 @@ public class FunctionRequest extends OperationRequest {
     return isGET();
   }
 
+  @SuppressWarnings("unchecked")
   @Override
   public <T> T getSerializerOptions(Class<T> serilizerOptions, ContextURL contextUrl, boolean references)
       throws ContentNegotiatorException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/OperationRequest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/OperationRequest.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/OperationRequest.java
index 1f1b194..927dd13 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/OperationRequest.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/requests/OperationRequest.java
@@ -27,7 +27,6 @@ import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.serializer.RepresentationType;
 import org.apache.olingo.server.api.serializer.SerializerException;
-import org.apache.olingo.server.api.uri.UriHelper;
 import org.apache.olingo.server.core.ContentNegotiator;
 import org.apache.olingo.server.core.ContentNegotiatorException;
 import org.apache.olingo.server.core.ServiceRequest;
@@ -73,7 +72,7 @@ public abstract class OperationRequest extends ServiceRequest {
       return null;
     }
 
-    final UriHelper helper = odata.createUriHelper();
+    //final UriHelper helper = odata.createUriHelper();
 
     if (isReturnTypePrimitive() || isReturnTypeComplex()) {
       // Part 1 {10.14, 10.14} since the function return properties does not

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/NoContentResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/NoContentResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/NoContentResponse.java
index eb16365..908a69c 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/NoContentResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/NoContentResponse.java
@@ -29,7 +29,7 @@ import org.apache.olingo.server.api.ServiceMetadata;
 public class NoContentResponse extends ServiceResponse {
 
   public NoContentResponse(ServiceMetadata metadata, ODataResponse response) {
-    super(metadata, response, Collections.EMPTY_MAP);
+    super(metadata, response, Collections.<String,String>emptyMap());
   }
 
   // 200

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceResponseVisior.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceResponseVisior.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceResponseVisior.java
index 4f11cb8..022c72d 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceResponseVisior.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/ServiceResponseVisior.java
@@ -21,7 +21,6 @@ package org.apache.olingo.server.core.responses;
 import org.apache.olingo.server.api.ODataApplicationException;
 import org.apache.olingo.server.api.ODataTranslatedException;
 
-@SuppressWarnings("unused")
 public class ServiceResponseVisior {
 
   public void visit(CountResponse response) throws ODataTranslatedException,

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/StreamResponse.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/StreamResponse.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/StreamResponse.java
index ec7db03..3c8f78b 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/StreamResponse.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/responses/StreamResponse.java
@@ -31,7 +31,7 @@ import org.apache.olingo.server.api.ServiceMetadata;
 public class StreamResponse extends ServiceResponse {
 
   public StreamResponse(ServiceMetadata metadata, ODataResponse response) {
-    super(metadata, response, Collections.EMPTY_MAP);
+    super(metadata, response, Collections.<String,String>emptyMap());
   }
 
   public void writeStreamResponse(InputStream streamContent, ContentType contentType) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
index 17e0c61..3423250 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/ServiceDispatcherTest.java
@@ -404,6 +404,7 @@ public class ServiceDispatcherTest {
     final ServiceHandler handler = Mockito.mock(ServiceHandler.class);
     helpTest(handler, "trippin/People('russelwhyte')/Friends/$ref", "POST", payload,
         new TestResult() {
+          @SuppressWarnings({ "unchecked", "rawtypes" })
           @Override
           public void validate() throws Exception {
             ArgumentCaptor<DataRequest> arg1 = ArgumentCaptor.forClass(DataRequest.class);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinDataModel.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinDataModel.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinDataModel.java
index a960d67..78bd012 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinDataModel.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinDataModel.java
@@ -57,22 +57,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class TripPinDataModel {
   private final ServiceMetadata metadata;
-  private HashMap<String, EntityCollection> entitySetMap;
-  private Map<Integer, Map> tripLinks;
-  private Map<String, Map> peopleLinks;
-  private Map<Integer, Map> flightLinks;
+  private HashMap<String, EntityCollection> entitySetMap = new HashMap<String, EntityCollection>();
+  private Map<Integer, Map<String,Object>> tripLinks = new HashMap<Integer, Map<String,Object>>();
+  private Map<String, Map<String,Object>> peopleLinks = new HashMap<String, Map<String,Object>>();
+  private Map<Integer, Map<String, Object>> flightLinks = new HashMap<Integer, Map<String, Object>>();
 
   public TripPinDataModel(ServiceMetadata metadata) throws Exception {
     this.metadata = metadata;
     loadData();
   }
 
+  @SuppressWarnings("unchecked")
   public void loadData() throws Exception {
-    this.entitySetMap = new HashMap<String, EntityCollection>();
-    this.tripLinks = new HashMap<Integer, Map>();
-    this.peopleLinks = new HashMap<String, Map>();
-    this.flightLinks = new HashMap<Integer, Map>();
-
     EdmEntityContainer ec = metadata.getEdm().getEntityContainer(null);
     for (EdmEntitySet edmEntitySet : ec.getEntitySets()) {
       String entitySetName = edmEntitySet.getName();
@@ -95,24 +91,24 @@ public class TripPinDataModel {
     this.entitySetMap.put("Event", loadEnities("Event", type));
 
     ObjectMapper mapper = new ObjectMapper();
-    Map tripLinks = mapper.readValue(new FileInputStream(new File(
+    Map<String, List<Object>> tripLinks = mapper.readValue(new FileInputStream(new File(
         "src/test/resources/trip-links.json")), Map.class);
-    for (Object link : (ArrayList) tripLinks.get("value")) {
-      Map map = (Map) link;
+    for (Object link : tripLinks.get("value")) {
+      Map<String, Object> map = (Map<String, Object>) link;
       this.tripLinks.put((Integer) map.get("TripId"), map);
     }
 
-    Map peopleLinks = mapper.readValue(new FileInputStream(new File(
+    Map<String, List<Object>> peopleLinks = mapper.readValue(new FileInputStream(new File(
         "src/test/resources/people-links.json")), Map.class);
-    for (Object link : (ArrayList) peopleLinks.get("value")) {
-      Map map = (Map) link;
+    for (Object link : peopleLinks.get("value")) {
+      Map<String, Object> map = (Map<String, Object>) link;
       this.peopleLinks.put((String) map.get("UserName"), map);
     }
 
-    Map flightLinks = mapper.readValue(new FileInputStream(new File(
+    Map<String, List<Object>> flightLinks = mapper.readValue(new FileInputStream(new File(
         "src/test/resources/flight-links.json")), Map.class);
-    for (Object link : (ArrayList) flightLinks.get("value")) {
-      Map map = (Map) link;
+    for (Object link : flightLinks.get("value")) {
+      Map<String, Object> map = (Map<String, Object>) link;
       this.flightLinks.put((Integer) map.get("PlanItemId"), map);
     }
   }
@@ -245,6 +241,7 @@ public class TripPinDataModel {
     return search.get(0);
   }
 
+  @SuppressWarnings("unchecked")
   private EntityCollection getFriends(String userName) {
     Map<String, Object> map = this.peopleLinks.get(userName);
     if (map == null) {
@@ -270,6 +267,7 @@ public class TripPinDataModel {
     return result;
   }
 
+  @SuppressWarnings("unchecked")
   private EntityCollection getTrips(String userName) {
     Map<String, Object> map = this.peopleLinks.get(userName);
     if (map == null) {
@@ -320,8 +318,9 @@ public class TripPinDataModel {
     return result;
   }
 
+  @SuppressWarnings("unchecked")
   private EntityCollection getEvents(int tripId, EntityCollection result) {
-    Map<Integer, Object> map = this.tripLinks.get(tripId);
+    Map<String, Object> map = this.tripLinks.get(tripId);
     if (map == null) {
       return null;
     }
@@ -344,8 +343,9 @@ public class TripPinDataModel {
     return result;
   }
 
+  @SuppressWarnings("unchecked")
   private EntityCollection getFlights(int tripId, EntityCollection result) {
-    Map<Integer, Object> map = this.tripLinks.get(tripId);
+    Map<String, Object> map = this.tripLinks.get(tripId);
     if (map == null) {
       return null;
     }
@@ -368,8 +368,9 @@ public class TripPinDataModel {
     return result;
   }
 
+  @SuppressWarnings("unchecked")
   private EntityCollection getTripPhotos(int tripId) {
-    Map<Integer, Object> map = this.tripLinks.get(tripId);
+    Map<String, Object> map = this.tripLinks.get(tripId);
     if (map == null) {
       return null;
     }
@@ -451,15 +452,16 @@ public class TripPinDataModel {
     return null;
   }
 
+  @SuppressWarnings("unchecked")
   public void addNavigationLink(String navigation, Entity parentEntity, Entity childEntity) {
 
     EdmEntityType type = this.metadata.getEdm().getEntityType(
         new FullQualifiedName(parentEntity.getType()));
     String key = type.getKeyPredicateNames().get(0);
     if (type.getName().equals("Person") && navigation.equals("Friends")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.peopleLinks.put((String) parentEntity.getProperty(key).getValue(), map);
       }
 
@@ -471,9 +473,9 @@ public class TripPinDataModel {
       friends.add((String) childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Person") && navigation.equals("Trips")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.peopleLinks.put((String) parentEntity.getProperty(key).getValue(), map);
       }
 
@@ -485,17 +487,17 @@ public class TripPinDataModel {
       trips.add((Integer) childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Person") && navigation.equals("Photo")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.peopleLinks.put((String) parentEntity.getProperty(key).getValue(), map);
       }
       map.put("Photo", childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Trip") && navigation.equals("PlanItems")) {
-      Map map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.tripLinks.put((Integer) parentEntity.getProperty(key).getValue(), map);
       }
       if (childEntity.getType().equals("Flight")) {
@@ -515,9 +517,9 @@ public class TripPinDataModel {
       }
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Trip") && navigation.equals("Photo")) {
-      Map map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.tripLinks.put((Integer) parentEntity.getProperty(key).getValue(), map);
       }
       ArrayList<Integer> photos = (ArrayList<Integer>) map.get("Photos");
@@ -528,25 +530,25 @@ public class TripPinDataModel {
       photos.add((Integer) childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Flight") && navigation.equals("From")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.flightLinks.put((Integer) parentEntity.getProperty(key).getValue(), map);
       }
       map.put("From", childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Flight") && navigation.equals("To")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.flightLinks.put((Integer) parentEntity.getProperty(key).getValue(), map);
       }
       map.put("To", childEntity.getProperty(key).getValue());
       setLink(parentEntity, navigation, childEntity);
     } else if (type.getName().equals("Flight") && navigation.equals("Airline")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map == null) {
-        map = new HashMap();
+        map = new HashMap<String, Object>();
         this.flightLinks.put((Integer) parentEntity.getProperty(key).getValue(), map);
       }
       map.put("Airline", childEntity.getProperty(key).getValue());
@@ -576,25 +578,25 @@ public class TripPinDataModel {
     String updateKey = updateType.getKeyPredicateNames().get(0);
 
     if (type.getName().equals("Person") && navigationProperty.equals("Photo")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.put("Photo", ((Long) updateEntity.getProperty(updateKey).getValue()).intValue());
         updated = true;
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("From")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.put("From", updateEntity.getProperty(updateKey).getValue());
         updated = true;
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("To")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.put("To", updateEntity.getProperty(updateKey).getValue());
         updated = true;
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("Airline")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.put("Airline", updateEntity.getProperty(updateKey).getValue());
         updated = true;
@@ -717,6 +719,7 @@ public class TripPinDataModel {
     }
   }
 
+  @SuppressWarnings("unchecked")
   public boolean removeNavigationLink(String navigationProperty, Entity parentEntity,
       Entity deleteEntity) {
     boolean removed = false;
@@ -725,7 +728,7 @@ public class TripPinDataModel {
     String key = type.getKeyPredicateNames().get(0);
 
     if (type.getName().equals("Person") && navigationProperty.equals("Friends")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         ArrayList<String> friends = (ArrayList<String>) map.get("Friends");
         if (friends != null) {
@@ -734,7 +737,7 @@ public class TripPinDataModel {
         }
       }
     } else if (type.getName().equals("Person") && navigationProperty.equals("Trips")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         ArrayList<Integer> trips = (ArrayList<Integer>) map.get("Trips");
         if (trips != null) {
@@ -743,13 +746,13 @@ public class TripPinDataModel {
         }
       }
     } else if (type.getName().equals("Person") && navigationProperty.equals("Photo")) {
-      Map map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.peopleLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.remove("Photo");
         removed = true;
       }
     } else if (type.getName().equals("Trip") && navigationProperty.equals("PlanItems")) {
-      Map map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         if (deleteEntity.getType().equals("Flight")) {
           ArrayList<Integer> flights = (ArrayList<Integer>) map.get("Flights");
@@ -766,7 +769,7 @@ public class TripPinDataModel {
         }
       }
     } else if (type.getName().equals("Trip") && navigationProperty.equals("Photo")) {
-      Map map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.tripLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         ArrayList<Integer> photos = (ArrayList<Integer>) map.get("Photos");
         if (photos != null) {
@@ -775,19 +778,19 @@ public class TripPinDataModel {
         }
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("From")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.remove("From");
         removed = true;
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("To")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.remove("To");
         removed = true;
       }
     } else if (type.getName().equals("Flight") && navigationProperty.equals("Airline")) {
-      Map map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
+      Map<String, Object> map = this.flightLinks.get(parentEntity.getProperty(key).getValue());
       if (map != null) {
         map.remove("Airline");
         removed = true;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinHandler.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinHandler.java
index d8cafc1..c721325 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinHandler.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinHandler.java
@@ -439,11 +439,15 @@ public class TripPinHandler implements ServiceHandler {
 
     final EntityDetails details = process(request);
 
-    for (URI reference : references) {
-      DataRequest bindingRequest = request.parseLink(reference);
-      Entity linkEntity = this.dataModel.getEntity(bindingRequest.getEntitySet().getName(),
-          bindingRequest.getKeyPredicates());
-      this.dataModel.addNavigationLink(details.navigationProperty, details.entity, linkEntity);
+    try {
+      for (URI reference : references) {
+        DataRequest bindingRequest = request.parseLink(reference);
+        Entity linkEntity = this.dataModel.getEntity(bindingRequest.getEntitySet().getName(),
+            bindingRequest.getKeyPredicates());
+        this.dataModel.addNavigationLink(details.navigationProperty, details.entity, linkEntity);
+      }
+    } catch (URISyntaxException e) {
+      throw new ODataApplicationException(e.getMessage(), 500, Locale.getDefault(), e);
     }
     response.writeNoContent();
   }
@@ -452,14 +456,18 @@ public class TripPinHandler implements ServiceHandler {
   public void updateReference(DataRequest request, String entityETag, URI updateId,
       NoContentResponse response) throws ODataTranslatedException, ODataApplicationException {
     // this single valued navigation.
-    final EntityDetails details = process(request);
-    DataRequest updateRequest = request.parseLink(updateId);
-    Entity updateEntity = this.dataModel.getEntity(updateRequest.getEntitySet().getName(),
-        updateRequest.getKeyPredicates());
     boolean updated = false;
-    if (updateEntity != null) {
-      updated = this.dataModel.updateNavigationLink(details.navigationProperty,
-        details.parentEntity, updateEntity);
+    try {
+      final EntityDetails details = process(request);
+      DataRequest updateRequest = request.parseLink(updateId);
+      Entity updateEntity = this.dataModel.getEntity(updateRequest.getEntitySet().getName(),
+          updateRequest.getKeyPredicates());
+      if (updateEntity != null) {
+        updated = this.dataModel.updateNavigationLink(details.navigationProperty,
+          details.parentEntity, updateEntity);
+      }
+    } catch (URISyntaxException e) {
+      throw new ODataApplicationException(e.getMessage(), 500, Locale.getDefault(), e);
     }
 
     if (updated) {
@@ -474,13 +482,17 @@ public class TripPinHandler implements ServiceHandler {
       NoContentResponse response) throws ODataTranslatedException, ODataApplicationException {
     boolean removed = false;
     if (deleteId != null) {
-      final EntityDetails details = process(request);
-      DataRequest deleteRequest = request.parseLink(deleteId);
-      Entity deleteEntity = this.dataModel.getEntity(deleteRequest.getEntitySet().getName(),
-          deleteRequest.getKeyPredicates());
-      if (deleteEntity != null) {
-        removed = this.dataModel.removeNavigationLink(details.navigationProperty, details.entity,
-            deleteEntity);
+      try {
+        final EntityDetails details = process(request);
+        DataRequest deleteRequest = request.parseLink(deleteId);
+        Entity deleteEntity = this.dataModel.getEntity(deleteRequest.getEntitySet().getName(),
+            deleteRequest.getKeyPredicates());
+        if (deleteEntity != null) {
+          removed = this.dataModel.removeNavigationLink(details.navigationProperty, details.entity,
+              deleteEntity);
+        }
+      } catch (URISyntaxException e) {
+        throw new ODataApplicationException(e.getMessage(), 500, Locale.getDefault(), e);
       }
     } else {
       // this single valued navigation.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
index dac728b..017b072 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServiceTest.java
@@ -19,7 +19,8 @@
 package org.apache.olingo.server.example;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
@@ -46,7 +47,6 @@ import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/fbdf9aad/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
index 2c05d65..94295cd 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/example/TripPinServlet.java
@@ -33,6 +33,7 @@ import org.apache.olingo.commons.api.edm.provider.EdmProvider;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataHttpHandler;
 import org.apache.olingo.server.api.ServiceMetadata;
+import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.core.MetadataParser;
 import org.apache.olingo.server.core.OData4Impl;
 
@@ -57,7 +58,7 @@ public class TripPinServlet extends HttpServlet {
       throw new IOException(e);
     }
 
-    ServiceMetadata metadata = odata.createServiceMetadata(edmProvider, Collections.EMPTY_LIST);
+    ServiceMetadata metadata = odata.createServiceMetadata(edmProvider, Collections.<EdmxReference>emptyList());
 
     ODataHttpHandler handler = odata.createHandler(metadata);