Just as the earilier thread mentioned, when sign a big file, the
xmlsecurity lib will throw the out of memory error. By looking the source
code, seems in XmlSignatureInput::updateOutputStream

            InputStream is = getResetableInputStream();
            if (bytes!=null) {
                //already read write it, can be rea.
                diOs.write(bytes,0,bytes.length);
                return;
            }
            is.reset();

The plail file will be read into memory, and then caculcate the signature
over it.  Obviously it leads to a big memory allocation. Not sure why this
big-allocation-for-all is used in here, for performance? After commenting
the above code out and add

InputStream is = this._inputOctetStreamProxy;

It works well, I want to make sure whether this modification will cause
other problems or not?

wei

Reply via email to