You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2016/03/04 21:37:05 UTC
[22/39] olingo-odata4 git commit: OLINGO-868: Fixing a error,
where a repeated annotation element is not skipped correctly
OLINGO-868: Fixing a error, where a repeated annotation element is not skipped correctly
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c86009a2
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c86009a2
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c86009a2
Branch: refs/heads/OLINGO-856_ODataHandlerInAPI
Commit: c86009a2428902e73c2f3f317e5baf13e4415eab
Parents: d040afe
Author: Ramesh Reddy <ra...@jboss.org>
Authored: Fri Feb 19 12:00:23 2016 -0600
Committer: Ramesh Reddy <ra...@jboss.org>
Committed: Fri Feb 19 12:06:12 2016 -0600
----------------------------------------------------------------------
.../org/apache/olingo/server/core/MetadataParser.java | 5 +++++
.../apache/olingo/server/core/MetadataParserTest.java | 7 ++++++-
.../src/test/resources/skip-annotation.xml | 12 ++++++++++++
3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c86009a2/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
index c47aa52..03359f5 100644
--- a/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
+++ b/lib/server-core-ext/src/main/java/org/apache/olingo/server/core/MetadataParser.java
@@ -1140,7 +1140,12 @@ public class MetadataParser {
XMLEvent event = reader.peek();
if (!parseAnnotations) {
+ XMLEvent eventBefore = event;
event = skipAnnotations(reader, event);
+ // if annotation is stripped start again
+ if (eventBefore != event) {
+ continue;
+ }
}
if (!event.isStartElement() && !event.isEndElement()) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c86009a2/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
index 8afe5d2..97ae420 100644
--- a/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
+++ b/lib/server-core-ext/src/test/java/org/apache/olingo/server/core/MetadataParserTest.java
@@ -180,6 +180,11 @@ public class MetadataParserTest {
assertEquals(6, bindings.size());
assertEquals("Microsoft.OData.SampleService.Models.TripPin.Flight/From", bindings.get(2).getPath());
assertEquals("Airports", bindings.get(2).getTarget());
-
}
+
+ @Test
+ public void testParsingWithNoFormat() throws Exception {
+ MetadataParser parser = new MetadataParser();
+ provider = (CsdlEdmProvider) parser.buildEdmProvider(new FileReader("src/test/resources/skip-annotation.xml"));
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c86009a2/lib/server-core-ext/src/test/resources/skip-annotation.xml
----------------------------------------------------------------------
diff --git a/lib/server-core-ext/src/test/resources/skip-annotation.xml b/lib/server-core-ext/src/test/resources/skip-annotation.xml
new file mode 100644
index 0000000..24ddbcf
--- /dev/null
+++ b/lib/server-core-ext/src/test/resources/skip-annotation.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ you under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"><edmx:DataServices><Schema Namespace="Microsoft.OData.SampleService.Models.TripPin" xmlns="http://docs.oasis-open.org/odata/ns/edm"><EntityType Name="Photo" HasStream="true"><Key><PropertyRef Name="Id" /></Key><Property Name="Id" Type="Edm.Int64" Nullable="false"><Annotation Term="Org.OData.Core.V1.Permissions"><EnumMember>Org.OData.Core.V1.Permission/Read</EnumMember></Annotation></Property><Property Name="Name" Type="Edm.String" /><Annotation Term="Org.OData.Core.V1.AcceptableMediaTypes"><Collection><String>image/jpeg</String></Collection></Annotation></EntityType><EntityContainer Name="DefaultContainer"><EntitySet Name="Photos" EntityType="Microsoft.OData.SampleService.Models.TripPin.Photo"><Annotation Term="Org.OData.Core.V1.ResourcePath" String="Photos" /><Annotation Term="Org.OData.Capabilities.V1.SearchRestrictions"><Record><PropertyValue Property="Searchable" Bool="true" /><PropertyValue Property=
"UnsupportedExpressions"><EnumMember>Org.OData.Capabilities.V1.SearchExpressions/none</EnumMember></PropertyValue></Record></Annotation><Annotation Term="Org.OData.Capabilities.V1.InsertRestrictions"><Record><PropertyValue Property="Insertable" Bool="true" /><PropertyValue Property="NonInsertableNavigationProperties"><Collection /></PropertyValue></Record></Annotation></EntitySet></EntityContainer></Schema></edmx:DataServices></edmx:Edmx>
\ No newline at end of file