[ale] found a bug in an open source API: It 'Broke' under linux.

Joshua jrtroberts at gmail.com
Sat Feb 12 16:06:10 EST 2011


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
>>     
>
>
>   



More information about the Ale mailing list