Tsz-wo Sze created HDDS-8665:
--------------------------------

             Summary: OmDBSnapshotInfoCodec.copyObject(..) does not follow the 
general contract of copy.
                 Key: HDDS-8665
                 URL: https://issues.apache.org/jira/browse/HDDS-8665
             Project: Apache Ozone
          Issue Type: Bug
          Components: OM, Snapshot
            Reporter: Tsz-wo Sze


In OmDBSnapshotInfoCodec.copyObject(..), it currently simply returns the same 
object.  However, if it is changed to return a real copy as below, 
TestOMSnapshotDeleteRequest and TestOMSnapshotPurgeRequestAndResponse will fail.
{code}
+++ 
b/hadoop-ozone/interface-storage/src/main/java/org/apache/hadoop/ozone/om/codec/OmDBSnapshotInfoCodec.java
@@ -53,6 +53,14 @@ public SnapshotInfo fromPersistedFormat(byte[] rawData)
   @Override
   public SnapshotInfo copyObject(SnapshotInfo object) {
     // Note: Not really a "copy". from OMDBSnapshotInfoCodec
-    return object;
+
+    // TODO: Copy will cause failures
+    //       - TestOMSnapshotDeleteRequest NullPointerException
+    //       - TestOMSnapshotPurgeRequestAndResponse AssertionFailedError
+    try {
+      return fromPersistedFormat(toPersistedFormat(object));
+    } catch (IOException e) {
+      throw new IllegalStateException(e);
+    }
   }
 }
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to