You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org> on 2005/07/27 05:23:25 UTC
[jira] Commented: (AXIS-2134) ManagedMemoryDataSource does not correctly handle large attachments
[ http://issues.apache.org/jira/browse/AXIS-2134?page=comments#action_12316838 ]
Davanum Srinivas commented on AXIS-2134:
----------------------------------------
Is this patch ok? i fixed it in CVS like this. thanks, dims
Index: ManagedMemoryDataSource.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/attachments/ManagedMemoryDataSource.java,v
retrieving revision 1.36
diff -u -r1.36 ManagedMemoryDataSource.java
--- ManagedMemoryDataSource.java 1 Nov 2004 14:25:31 -0000 1.36
+++ ManagedMemoryDataSource.java 27 Jul 2005 03:16:25 -0000
@@ -487,7 +487,7 @@
private class Instream extends java.io.InputStream {
/** bytes read. */
- protected int bread = 0;
+ protected long bread = 0;
/** The real stream. */
java.io.FileInputStream fin = null;
@@ -540,8 +540,8 @@
throw new java.io.IOException(
Messages.getMessage("streamClosed"));
}
- // Will return neg. value when totalsz > 2Gb
- int ret = new Long(totalsz - bread).intValue();
+
+ int ret = new Long(Math.min(Integer.MAX_VALUE, totalsz - bread)).intValue();
if (debugEnabled) {
is_log.debug("available() = " + ret + ".");
> ManagedMemoryDataSource does not correctly handle large attachments
> -------------------------------------------------------------------
>
> Key: AXIS-2134
> URL: http://issues.apache.org/jira/browse/AXIS-2134
> Project: Apache Axis
> Type: Bug
> Components: Serialization/Deserialization
> Versions: 1.2.1
> Environment: Not platform dependent
> Reporter: Rodrigo Ruiz
>
> When trying to send an attachment larger than 2Gbytes, I get IndexOutOfBound exceptions.
> I think the problem is in the ManagedMemoryDataSource.InStream class implementation. I do not have access to the source CVS, so it's difficult to me to provide a correct patch, but I can describe it:
> - The bread field should be a "long", instead of an "int"
> - The available() method should return Math.min(Integer.MAX_VALUE, totalsz - bread), to ensure an integer is returned
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira