I am quite confused… I am reading here and BasicClientCookie clearly implements Serializable per JavaDoc:
http://hc.apache.org/httpcomponents-client/httpclient/apidocs/org/apache/http/impl/cookie/BasicClientCookie.html
However, my simple Groovy script:
#!/usr/bin/env groovy
@Grapes(
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.0.1')
)
import org.apache.http.impl.cookie.BasicClientCookie
import java.io.File
def cookie=new BasicClientCookie("name","value")
println cookie instanceof Serializable
def f=new File("/tmp/test")
f.withObjectOutputStream() { oos->
oos.writeObject(cookie)
}
outputs:
false
Caught: java.io.NotSerializableException: org.apache.http.impl.cookie.BasicClientCookie
at t$_run_closure1.doCall(t.groovy:12)
at t.run(t.groovy:11)
I have checked and I have no other versions of HttpClient anywhere in classpath (if I take Grapes statement out it cannot find file).
Thank you!
Misha Koshelev
The javadoc you linked to is for httpclient 4.1 alpha, but you are using httpclient 4.0.1.
Check the source, it confirms the Serializable interface was added in between 4.0.1 and the trunk.