Author: reto
Date: Tue Jun 28 17:06:50 2011
New Revision: 1140726
URL: http://svn.apache.org/viewvc?rev=1140726&view=rev
Log:
CLEREZZA-585: checking that the returned GraphNodes actually contains at least
one triple about the requested resource, otherwise return 404
Modified:
incubator/clerezza/trunk/parent/platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
Modified:
incubator/clerezza/trunk/parent/platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java?rev=1140726&r1=1140725&r2=1140726&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
(original)
+++
incubator/clerezza/trunk/parent/platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
Tue Jun 28 17:06:50 2011
@@ -147,7 +147,7 @@ public class DiscobitsTypeHandler extend
@Produces({"*/*"})
public Object getResource(@Context UriInfo uriInfo) {
final UriRef uri = new
UriRef(uriInfo.getAbsolutePath().toString());
- final GraphNode graphNode = getResourceAsGraphNode(uriInfo);
+ final GraphNode graphNode =
getResourceAsGraphNode(uriInfo);
if (graphNode == null) {
return resourceUnavailable(uri, uriInfo);
}
@@ -165,7 +165,16 @@ public class DiscobitsTypeHandler extend
private GraphNode getResourceAsGraphNode(UriInfo uriInfo) {
final UriRef uri = new
UriRef(uriInfo.getAbsolutePath().toString());
- return graphNodeProvider.getLocal(uri);
+ GraphNode result = graphNodeProvider.getLocal(uri);
+ //could chck if nodeContext > 0, but this would be less
efficient
+ TripleCollection tc = result.getGraph();
+ if (tc.filter(uri, null, null).hasNext()) {
+ return result;
+ }
+ if (tc.filter(null, null, uri).hasNext()) {
+ return result;
+ }
+ return null;
}