Negative edge weights in Dijkstra and Bellman Ford shortest path algorithms The main difference between Dijkstra algorithm and Bellman Ford algorithm that all texts (including CLRS) specify is that Dijkstra's algorithm need all non negative edge weights, while Bellman Ford algorithm can work with and detect -negative edge cycles. 

However I feel a bit different, especially after coming across problem asking to build shortest path tree from node $a$ in following graph: 



My shortest path tree after running Dijkstra came like this:



Then why texts say that Dijkstra need all non negative edge weights?
I feel that it should be no -ve edge weight cycle reachable from source node. 
Am I correct with this? or am I missing something here?
Then why texts say that Dijkstra need all non negative edge weights?


Because it has to work for all cases, not only a few examples.


  I feel that it should be no -ve edge weight cycle reachable from source node.


Try proving that claim and see where it leads. If you're successful, great; if not, trying to prove the opposite will fix your intuition.

See also here for a high-level argument.


   The smallest example where Dijsktra fails has four nodes, no (directed) cycle at all, and no negative-value cycle: