Should use return instead of a boolean
Use of "ignoreCancelled = true" instead of if (sign.isCancelled())
Use return instead of a new variable

This would increase the performance a little
Other minor things