[OLINGO-659] Fix minor stream issues
This commit is contained in:
parent
5248f34215
commit
1dd3a583ff
|
@ -311,7 +311,7 @@ public class SystemQueryOptionITCase extends AbstractBaseTestITCase {
|
|||
@Override
|
||||
protected ODataClient getClient() {
|
||||
ODataClient odata = ODataClientFactory.getClient();
|
||||
odata.getConfiguration().setDefaultPubFormat(ContentType .JSON);
|
||||
odata.getConfiguration().setDefaultPubFormat(ContentType.JSON);
|
||||
return odata;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -265,4 +265,20 @@ public class EdmEnumTypeImpl extends EdmTypeImpl implements EdmEnumType {
|
|||
public FullQualifiedName getAnnotationsTargetFQN() {
|
||||
return getFullQualifiedName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj){
|
||||
if(obj == null){
|
||||
return false;
|
||||
}
|
||||
|
||||
if(obj instanceof EdmEnumType){
|
||||
EdmEnumType other = (EdmEnumType) obj;
|
||||
if(this.getFullQualifiedName().equals(other.getFullQualifiedName())){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,18 +19,18 @@
|
|||
package org.apache.olingo.server.core.serializer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import org.apache.olingo.server.api.serializer.ODataSerializer;
|
||||
import org.apache.olingo.server.api.serializer.SerializerException;
|
||||
import org.apache.olingo.server.core.serializer.utils.CircleStreamBuffer;
|
||||
|
||||
public abstract class AbstractODataSerializer implements ODataSerializer {
|
||||
|
||||
protected void closeCircleStreamBufferOutput(CircleStreamBuffer buffer, SerializerException cachedException)
|
||||
protected void closeCircleStreamBufferOutput(OutputStream outputStream, SerializerException cachedException)
|
||||
throws SerializerException {
|
||||
if (buffer != null && buffer.getOutputStream() != null) {
|
||||
if (outputStream != null) {
|
||||
try {
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
} catch (IOException e) {
|
||||
if (cachedException != null) {
|
||||
throw cachedException;
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
package org.apache.olingo.server.core.serializer.json;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
@ -81,23 +82,24 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
@Override
|
||||
public SerializerResult serviceDocument(final ServiceMetadata metadata, final String serviceRoot)
|
||||
throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
new ServiceDocumentJsonSerializer(metadata, serviceRoot, isODataMetadataNone).writeServiceDocument(json);
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,22 +111,23 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
|
||||
@Override
|
||||
public SerializerResult error(final ODataServerError error) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
new ODataErrorSerializer().writeErrorDocument(json, error);
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -132,11 +135,12 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
public SerializerResult entityCollection(final ServiceMetadata metadata,
|
||||
final EdmEntityType entityType, final EntityCollection entitySet,
|
||||
final EntityCollectionSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
|
@ -157,26 +161,27 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
writeNextLink(entitySet, json);
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult entity(final ServiceMetadata metadata, final EdmEntityType entityType,
|
||||
final Entity entity, final EntitySerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
writeEntity(metadata, entityType, entity, contextURL,
|
||||
options == null ? null : options.getExpand(),
|
||||
options == null ? null : options.getSelect(),
|
||||
|
@ -184,14 +189,14 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json);
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -540,12 +545,13 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
@Override
|
||||
public SerializerResult primitive(final ServiceMetadata metadata, final EdmPrimitiveType type,
|
||||
final Property property, final PrimitiveSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
writeContextURL(contextURL, json);
|
||||
writeMetadataETag(metadata, json);
|
||||
|
@ -563,7 +569,7 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
|
@ -575,19 +581,20 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
property.getName(), property.getValue().toString());
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult complex(final ServiceMetadata metadata, final EdmComplexType type,
|
||||
final Property property, final ComplexSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
writeContextURL(contextURL, json);
|
||||
writeMetadataETag(metadata, json);
|
||||
|
@ -605,26 +612,27 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult primitiveCollection(final ServiceMetadata metadata, final EdmPrimitiveType type,
|
||||
final Property property, final PrimitiveSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
writeContextURL(contextURL, json);
|
||||
writeMetadataETag(metadata, json);
|
||||
|
@ -638,26 +646,27 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult complexCollection(final ServiceMetadata metadata, final EdmComplexType type,
|
||||
final Property property, final ComplexSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
writeContextURL(contextURL, json);
|
||||
writeMetadataETag(metadata, json);
|
||||
|
@ -666,28 +675,29 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult reference(final ServiceMetadata metadata, final EdmEntitySet edmEntitySet,
|
||||
final Entity entity, final ReferenceSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
final UriHelper uriHelper = new UriHelperImpl();
|
||||
final JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
outputStream = buffer.getOutputStream();
|
||||
final JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
|
||||
json.writeStartObject();
|
||||
writeContextURL(contextURL, json);
|
||||
|
@ -695,14 +705,14 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -710,14 +720,15 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
public SerializerResult referenceCollection(final ServiceMetadata metadata, final EdmEntitySet edmEntitySet,
|
||||
final EntityCollection entityCollection, final ReferenceCollectionSerializerOptions options)
|
||||
throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
|
||||
try {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
buffer = new CircleStreamBuffer();
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
final UriHelper uriHelper = new UriHelperImpl();
|
||||
final JsonGenerator json = new JsonFactory().createGenerator(buffer.getOutputStream());
|
||||
outputStream = buffer.getOutputStream();
|
||||
final JsonGenerator json = new JsonFactory().createGenerator(outputStream);
|
||||
json.writeStartObject();
|
||||
|
||||
writeContextURL(contextURL, json);
|
||||
|
@ -738,14 +749,14 @@ public class ODataJsonSerializer extends AbstractODataSerializer {
|
|||
json.writeEndObject();
|
||||
|
||||
json.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final IOException e) {
|
||||
cachedException =
|
||||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
package org.apache.olingo.server.core.serializer.xml;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -85,18 +86,18 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
@Override
|
||||
public SerializerResult serviceDocument(final ServiceMetadata metadata, final String serviceRoot)
|
||||
throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(),
|
||||
DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
ServiceDocumentXmlSerializer serializer = new ServiceDocumentXmlSerializer(metadata, serviceRoot);
|
||||
serializer.writeServiceDocument(xmlStreamWriter);
|
||||
serializer.writeServiceDocument(writer);
|
||||
|
||||
xmlStreamWriter.flush();
|
||||
xmlStreamWriter.close();
|
||||
buffer.getOutputStream().close();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -108,24 +109,24 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult metadataDocument(final ServiceMetadata serviceMetadata) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(),
|
||||
DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
MetadataDocumentXmlSerializer serializer = new MetadataDocumentXmlSerializer(serviceMetadata);
|
||||
serializer.writeMetadataDocument(xmlStreamWriter);
|
||||
serializer.writeMetadataDocument(writer);
|
||||
|
||||
xmlStreamWriter.flush();
|
||||
xmlStreamWriter.close();
|
||||
buffer.getOutputStream().close();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -137,7 +138,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,12 +149,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
SerializerException.MessageKeys.NULL_INPUT);
|
||||
}
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(),
|
||||
DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
|
||||
writer.writeStartElement("error");
|
||||
|
@ -171,7 +172,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -183,7 +184,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -218,12 +219,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
return entityReferenceCollection(metadata, entityType, entitySet, rso);
|
||||
}
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writer.writeStartElement(ATOM, "feed", NS_ATOM);
|
||||
writer.writeNamespace(ATOM, NS_ATOM);
|
||||
|
@ -260,7 +261,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -272,7 +273,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -287,12 +288,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
return entityReference(metadata, entityType, entity, rso);
|
||||
}
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writeEntity(metadata, entityType, entity, contextURL,
|
||||
options == null ? null : options.getExpand(),
|
||||
|
@ -302,7 +303,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -314,7 +315,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -802,12 +803,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
final Property property, final PrimitiveSerializerOptions options) throws SerializerException {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writer.writeStartElement(METADATA, "value", NS_METADATA);
|
||||
|
@ -832,7 +833,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -849,7 +850,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -858,13 +859,13 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
final Property property, final ComplexSerializerOptions options) throws SerializerException {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
EdmComplexType resolvedType = resolveComplexType(metadata, type, property.getType());
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writer.writeStartElement(METADATA, "value", NS_METADATA);
|
||||
writer.writeNamespace(METADATA, NS_METADATA);
|
||||
|
@ -883,7 +884,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -895,7 +896,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -904,12 +905,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
final Property property, final PrimitiveSerializerOptions options) throws SerializerException {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writer.writeStartElement(METADATA, "value", NS_METADATA);
|
||||
|
@ -931,7 +932,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -948,7 +949,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -957,12 +958,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
final Property property, final ComplexSerializerOptions options) throws SerializerException {
|
||||
final ContextURL contextURL = checkContextURL(options == null ? null : options.getContextURL());
|
||||
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
|
||||
writer.writeStartElement(METADATA, "value", NS_METADATA);
|
||||
writer.writeNamespace(METADATA, NS_METADATA);
|
||||
|
@ -976,7 +977,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
cachedException =
|
||||
|
@ -987,7 +988,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -999,18 +1000,18 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
|
||||
protected SerializerResult entityReference(final ServiceMetadata metadata, final EdmEntityType entityType,
|
||||
final Entity entity, ReferenceSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writeReference(metadata, entityType, entity, options == null ? null : options.getContextURL(), writer, true);
|
||||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -1022,7 +1023,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1050,12 +1051,12 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
protected SerializerResult entityReferenceCollection(final ServiceMetadata metadata,
|
||||
final EdmEntityType entityType, final EntityCollection entitySet,
|
||||
ReferenceCollectionSerializerOptions options) throws SerializerException {
|
||||
CircleStreamBuffer buffer = null;
|
||||
OutputStream outputStream = null;
|
||||
SerializerException cachedException = null;
|
||||
try {
|
||||
buffer = new CircleStreamBuffer();
|
||||
XMLStreamWriter writer =
|
||||
XMLOutputFactory.newInstance().createXMLStreamWriter(buffer.getOutputStream(), DEFAULT_CHARSET);
|
||||
CircleStreamBuffer buffer = new CircleStreamBuffer();
|
||||
outputStream = buffer.getOutputStream();
|
||||
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(outputStream, DEFAULT_CHARSET);
|
||||
writer.writeStartDocument(ODataSerializer.DEFAULT_CHARSET, "1.0");
|
||||
writer.writeStartElement(ATOM, "feed", NS_ATOM);
|
||||
writer.writeNamespace(ATOM, NS_ATOM);
|
||||
|
@ -1078,7 +1079,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
writer.writeEndDocument();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
buffer.getOutputStream().close();
|
||||
outputStream.close();
|
||||
|
||||
return SerializerResultImpl.with().content(buffer.getInputStream()).build();
|
||||
} catch (final XMLStreamException e) {
|
||||
|
@ -1090,7 +1091,7 @@ public class ODataXmlSerializer extends AbstractODataSerializer {
|
|||
new SerializerException("An I/O exception occurred.", e, SerializerException.MessageKeys.IO_EXCEPTION);
|
||||
throw cachedException;
|
||||
} finally {
|
||||
closeCircleStreamBufferOutput(buffer, cachedException);
|
||||
closeCircleStreamBufferOutput(outputStream, cachedException);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ import org.mockito.Mockito;
|
|||
public class EdmEnumTest {
|
||||
|
||||
private final EdmEnumType instance;
|
||||
private final EdmEnumType otherInstance;
|
||||
private final EdmEnumType nonFlagsInstance;
|
||||
private final EdmEnumType int16EnumType;
|
||||
private final EdmEnumType int32EnumType;
|
||||
|
@ -66,6 +67,10 @@ public class EdmEnumTest {
|
|||
instance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
|
||||
new CsdlEnumType().setName("name").setMembers(memberList).setFlags(true)
|
||||
.setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
|
||||
|
||||
otherInstance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
|
||||
new CsdlEnumType().setName("name").setMembers(memberList).setFlags(true)
|
||||
.setUnderlyingType(EdmPrimitiveTypeKind.SByte.getFullQualifiedName()));
|
||||
|
||||
nonFlagsInstance = new EdmEnumTypeImpl(mock(EdmProviderImpl.class), enumName,
|
||||
new CsdlEnumType().setName("name").setMembers(memberList).setFlags(false)
|
||||
|
@ -128,6 +133,7 @@ public class EdmEnumTest {
|
|||
@Test
|
||||
public void compatibility() {
|
||||
assertTrue(instance.isCompatible(instance));
|
||||
assertTrue(instance.isCompatible(otherInstance));
|
||||
assertFalse(instance.isCompatible(instance.getUnderlyingType()));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue