views:

26

answers:

1

Dear All:

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

A: 

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.

ataylor