[ale] found a bug in an open source API: It 'Broke' under linux.
James Sumners
james.sumners at gmail.com
Sat Feb 12 17:35:54 EST 2011
I didn't say it is a syntax error. The purpose of enclosing the one
line in curly braces is to guard against future errors. For example:
if (1)
foo();
could later become
if (1)
foo();
bar();
That _looks_ like
if (1) {
foo();
bar();
but it is really
if (1) {
foo();
}
bar();
On Sat, Feb 12, 2011 at 4:06 PM, Joshua <jrtroberts at gmail.com> wrote:
> James,
>
> I put the {} around the block, (which helps to guard against certain
> bugs). the {} make the code easier to read, but I do not know that with
> one line of code they prevent any bugs.
>
> from what I read, and the discussions I had on iirc, a dangling else is
> more of a grammatical (readability) thing, from a human perspective, the
> compiler /interpreter will take care of any ambiguity with if/else
> blocks, as far as I can tell. The else attaches to the nearest if
> block. I can see the issue from a psuedocode perspective, where the
> grammatical ambiguity can cause problems when actually implementing the
> code, but one the code is written it is the placement of the } from
> preceding if statements that determine which 'if' the 'else' will attach to.
>
> or am I missing something?
>
>
>
> Maybe that is all the dangling else is: a semantics things.
>
>
> James Sumners wrote:
>> My only suggestion would be to fix your dangling else block --
>> http://pastebin.com/pTzUQzjJ
>>
>> On Sat, Feb 12, 2011 at 2:53 PM, Joshua <jrtroberts at gmail.com> wrote:
>>
>>> I am working with an API for currency conversion from
>>> http://www.thomasknierim.com/index.php?s=currencyconverter&Submit=Search
>>> <http://www.thomasknierim.com/index.php?s=currencyconverter&Submit=Search>
>>>
>>> It is all written is Java.
>>>
>>> The initCacheFile() method worked fine under windows, but it broke
>>> under linux.
>>>
>>> The original code grabbed the path to the java temp directory and then
>>> concatenated a file name onto the end of it. I do not know what it
>>> produces under windows, but my suspicion is that windows is something
>>> like </driveletter:\pathtotemp\/> with the trailing '\' included.
>>>
>>> Under linux the call to return the temp directory returns '/tmp' and
>>> then the concatenating of '/filename/' creates a file named
>>> /tmp/filename/ instead of /tmp//filename/ so the application was trying
>>> to write to / where it did not have permissions. So I had to write a
>>> fix. Still not sure the fix is this best.
>>>
>>>
>>> Maybe someone can look at the code I wrote and let me know.
>>>
>>> http://pastebin.com/vsC6vZRU
>>>
>>> The old code is commented out.
>>>
>>> Joshua Roberts
>>>
>>
>>
>>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
--
James Sumners
http://james.roomfullofmirrors.com/
"All governments suffer a recurring problem: Power attracts
pathological personalities. It is not that power corrupts but that it
is magnetic to the corruptible. Such people have a tendency to become
drunk on violence, a condition to which they are quickly addicted."
Missionaria Protectiva, Text QIV (decto)
CH:D 59
More information about the Ale
mailing list