Skip to content

Commit

Permalink
changed xml to be nonconcurrent
Browse files Browse the repository at this point in the history
  • Loading branch information
allenaverbukh committed Jan 30, 2025
1 parent c1446db commit dec9426
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.concurrent.ConcurrentLinkedQueue;

Expand Down Expand Up @@ -404,26 +405,26 @@ public static class DeleteResult {

@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Error") // Maps to <Error> in XML
private ConcurrentLinkedQueue<S3MessagePayload.S3ErrorObject> errors;
private List<S3MessagePayload.S3ErrorObject> errors;

@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Deleted") // Maps to <Deleted> in XML
private ConcurrentLinkedQueue<S3MessagePayload.S3DeletedObject> deleted;
private List<S3MessagePayload.S3DeletedObject> deleted;

// Getters and setters
public ConcurrentLinkedQueue<S3MessagePayload.S3ErrorObject> getErrors() {
public List<S3MessagePayload.S3ErrorObject> getErrors() {
return errors;
}

public void setErrors(ConcurrentLinkedQueue<S3ErrorObject> errors) {
public void setErrors(List<S3MessagePayload.S3ErrorObject> errors) {
this.errors = errors;
}

public ConcurrentLinkedQueue<S3MessagePayload.S3DeletedObject> getDeleted() {
public List<S3MessagePayload.S3DeletedObject> getDeleted() {
return deleted;
}

public void setDeleted(ConcurrentLinkedQueue<S3MessagePayload.S3DeletedObject> deleted) {
public void setDeleted(List<S3MessagePayload.S3DeletedObject> deleted) {
this.deleted = deleted;
}
}
Expand Down Expand Up @@ -491,6 +492,5 @@ public String toString() {
return "S3DeletedObject{key='" + key + "'}";
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.nio.charset.StandardCharsets;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;

import static com.github.ambry.frontend.FrontendUtils.*;
import static com.github.ambry.frontend.s3.S3Constants.*;
Expand Down Expand Up @@ -143,10 +144,9 @@ else if (exception instanceof RestServiceException) {
.whenComplete((result, exception) -> {
try {
// Add XML declaration at the top
String xmlDeclaration = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
outputStream.write(xmlDeclaration.getBytes(StandardCharsets.UTF_8));
response.setDeleted(deleted);
response.setErrors(errors);
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
response.setDeleted(new ArrayList<>(deleted));
response.setErrors(new ArrayList<>(errors));
xmlMapper.writeValue(outputStream, response);
ReadableStreamChannel finalreadableStreamChannel =
new ByteBufferReadableStreamChannel(ByteBuffer.wrap(outputStream.toByteArray()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ public void deleteObjectTest() throws Exception {
XmlMapper xmlMapper = new XmlMapper();
S3MessagePayload.DeleteResult response =
xmlMapper.readValue(byteBuffer.array(), S3MessagePayload.DeleteResult.class);
assertEquals(response.getDeleted().peek().getKey(), KEY_NAME);
assertEquals(response.getErrors().peek().toString(), new S3MessagePayload.S3ErrorObject("key-error","InternalServerError").toString());
assertEquals(response.getDeleted().get(0).getKey(), KEY_NAME);
assertEquals(response.getErrors().get(0).toString(), new S3MessagePayload.S3ErrorObject("key-error","InternalServerError").toString());
assertEquals("Mismatch on status", ResponseStatus.Ok, restResponseChannel.getStatus());
}

Expand Down

0 comments on commit dec9426

Please sign in to comment.