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

Tim Watts tim at cliftonfarm.org
Sat Feb 12 19:20:37 EST 2011


They'll also automatically insert a closing brace and indent when you
type {<enter> (*cough*eclipse*cough*). So the cost is near zero.


On Sat, 2011-02-12 at 18:58 -0500, Michael Trausch wrote:
> Any good editor (*cough*emacs*cough*) will properly indent and clue
> the human into the error. Its all about the text editor. ;)
> 
> --
> Sent from my phone... a G2 running CM7 nightlies!
> 
> On Feb 12, 2011 5:11 PM, "Tim Watts" <tim at cliftonfarm.org> wrote:
> > [ pardon me for I'm butting in ]
> > 
> > You're right: to the compiler it's just style. But I look at them as
> > cheap insurance against future bugs. 
> > 
> > // The code in Feb 2011:
> > if (somethingIsTrue())
> > doASimpleTask()
> > else
> > doTheAlternateTask()
> > 
> > // The code in Feb 2012:
> > if (somethingIsTrue())
> > doASimpleTask();
> > else
> > doTheAlternateTask();
> > doTheWorkAroundToo();
> > 
> > Of course, this is broke and you may very well have caught it. But
> > enclosing it in {} in the first place would have avoided the need to
> > even think about it. About the only time I'll omit braces is with
> > conditionals that are one-liners (and sometimes not even then):
> > 
> > if (log.isDebugEnabled()) log.debug("now i'm opening the pickle
> jar.");
> > 
> > 
> > On Sat, 2011-02-12 at 16:06 -0500, Joshua 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
> > 
> > 
> > _______________________________________________
> > 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
> 
> _______________________________________________
> 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




More information about the Ale mailing list