Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.2.2
-
All platforms
Description
The class org.apache.http.message.HeaderGroup provides a method clone().
If clone is called the original object's headers are removed.
The root cause of this is, that the class HeaderGroup has only one attribute (headers) which is a List.
As clone does a shallow copy the List is not cloned (that is correct).
But within the method clone(), the headers of the newly created clone are removed (by calling clear()) but they actually also clear the headers of the original object (since it is not a copy).
So this leads to very tricky problems in code where the headers are essential to be available in the clone and in the original object.
Original code:
public Object clone() throws CloneNotSupportedException
Corrected code:
public Object clone() throws CloneNotSupportedException