Hi Gerrie,
Can you please file a JIRA issue for this? I will get it fixed for the
next beta. I think the solution is to just call reader.close() after
things are done. As a workaround I think you could override
MessageBindingProvider.writeParameter and call reader.close() or you
could write a Handler which closed the reader after the request was all
done.
Glad to hear its working out for you other than that though!
Regards,
- Dan
Kimpen, Gerrie wrote:
Hi,
I implemented an XMLStreamReader that loops over a java.sql.ResultSet
to create its events. Here is what my service method looks like:
public XMLStreamReader getPacklistByNumber(XMLStreamReader reader)
throws Exception {
String packlistNumber = getPacklistNumber(reader);
// query database etc ...
return new ResultSetXMLStreamReader(resultSet);
}
In the close() method of the ResultSetXMLStreamReader I release the
wrapped resultSet, but it seems that XMLStreamReader.close() never
gets called by the XFire code (more specifically
MessageBindingProvider). Is this (not) done for a reason?
There are some options to get around this using XFire 1.0:
- subclass MessageBindingProvider and override writeParameter
- put the XMLStreamReader on the context and call close() in an out
handler
Maybe you can think of a better way?
<hr>
If a simple XMLStreamReader.close() call in the MessageBindingProvider
is not a good ‘fix’ maybe this is:
An XMLStreamReaderWrapper could be used as a return type
public interface XMLStreamReaderWrapper {
XMLStreamReader getReader();
/**
* Called when XFire is finished with the reader.
*/
void onReaderDiscard();
}
The MessageBindingProvider could call onReaderDiscard() in a finally
block.
The service method would now look like:
public XMLStreamReaderWrapper getPacklistByNumber(XMLStreamReader
reader) throws Exception {
String packlistNumber = getPacklistNumber(reader);
// query database etc ...
return new DefaultXMLStreamReaderWrapper(new
ResultSetXMLStreamReader(resultSet));
}
It’s just an idea,
Tnx for the great work so far!
Gerrie
--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog