[
https://issues.jboss.org/browse/SHRINKWRAP-470?page=com.atlassian.jira.pl...
]
Michal Matloka edited comment on SHRINKWRAP-470 at 11/29/13 6:35 PM:
---------------------------------------------------------------------
Hey,
So API says:
{quote}
1. If the given size is less than the current size then the entity is truncated,
discarding any bytes beyond the new end.
2. If the given size is greater than or equal to the current size then the entity is not
modified.
3. In either case, if the current position is greater than the given size then it is set
to that size.
{quote}
1. is covered by
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
2. should be covered here
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
but it should have form "do nothing", improved in PR to 'empty' block
3. is covered
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
[~alrubinger] please verify :)
was (Author: mmatloka):
Hey,
So API says:
{quote}
1. If the given size is less than the current size then the entity is truncated,
discarding any bytes beyond the new end.
2. If the given size is greater than or equal to the current size then the entity is not
modified.
3. In either case, if the current position is greater than the given size then it is set
to that size.
{quote}
1. is covered by
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
2. should be covered here
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
but it should have form "do nothing", improved in PR to 'empty' block
3. is covered
https://github.com/shrinkwrap/shrinkwrap/blob/master/api-nio2/src/main/ja...
SeekableInMemoryByteChannel.truncate misimplements the contract
---------------------------------------------------------------
Key: SHRINKWRAP-470
URL:
https://issues.jboss.org/browse/SHRINKWRAP-470
Project: ShrinkWrap
Issue Type: Bug
Reporter: Under Flowerpot
Assignee: Michal Matloka
At the tail end of truncate, is this logic:
{code}
// If we've been given a size greater than we are
if (newSize > currentSize) {
// Reset the position only
this.position = newSize;
}
{code}
which is not what the API says: "If the given size is less than the current size
then the entity is truncated, discarding any bytes beyond the new end. If the given size
is greater than or equal to the current size then the entity is not modified."
I think you wanted this instead, which should be inside the above array truncation:
{code}
// If we've been given a size less than we are
if (newSize < currentSize) {
// Reset the size only
this.size = newSize;
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira