[
https://issues.apache.org/jira/browse/DERBY-2748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bernt M. Johnsen resolved DERBY-2748.
-------------------------------------
Resolution: Fixed
Derby Info: (was: [Patch Available])
Committed revision 545454.
> TimeSlice and Socket-Timeout bounds checking wrong
> --------------------------------------------------
>
> Key: DERBY-2748
> URL: https://issues.apache.org/jira/browse/DERBY-2748
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.2.2.0
> Reporter: Kurt Huwig
> Assignee: Bernt M. Johnsen
> Fix For: 10.3.0.0
>
> Attachments: DERBY-2748-code-v2.diff, DERBY-2748-code-v2.stat,
> DERBY-2748-code.diff, DERBY-2748-doc.diff
>
>
> ClientThread sets the Socket timeout based upon the timeslice value:
> //set time out
> //this looks highly suspect. Why does timeSlice setSoTimeout?
> if (timeSlice != 0)
> clientSocket.setSoTimeout(timeSlice);
> it gets the timeSlice from NetworkServerControlImpl which sets it like this:
> /**
> * Set the current value of time slice
> *
> * @param value time slice value
> * @exception Exception if value is < 0
> */
> private void setTimeSlice(int value)
> throws Exception
> {
> if (value < MIN_TIMESLICE)
> consolePropertyMessage("DRDA_InvalidValue.U", new
> String []
> {new Integer(value).toString(), "timeslice"});
> if (value == USE_DEFAULT)
> value = DEFAULT_TIMESLICE;
> synchronized(timeSliceSync) {
> timeSlice = value;
> }
> }
> but
> private final static int MIN_TIMESLICE = -1;
> therefore a value of -1 is accepted by setTimeSlice, due to "!= 0" used for
> Socket.setSoTimeout which will bail out with an Exception:
> if (timeout < 0)
> throw new IllegalArgumentException("timeout can't be negative");
> According to the comments, the proper fix would be
> - private final static int MIN_TIMESLICE = -1;
> + private final static int MIN_TIMESLICE = 0;
> but I do not understand the timeslice at all, so this is just my guess.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.