I hate any raise to $3 preflop, it's just not enough to define anybody's hand or to make very many people fold. Make it $3.50 as an absolute minimum and usually $4.
Passive, bad villain weak leads flop when there's a flush draw and then check/minraises when the flush hits. I'm thinking he has the flush 90% of the time.
Pot is 17 + 12 + 24 = 53 and it's only 12 to call, you almost certainly have 7 outs so 15% to win. 85% of the time you call you're going to lose $12, so 12 * .85 = -$10.20. 10.20 / 15% = $68 so you have to win $68 the times you call and hit to make this worthwhile. Pot is already 53 so you only need to get 15 more. If you think that you can get paid off for at least another $20 on the river (to take care of the rake plus a little more for those very few times he does fold) then you call here and bet the river when you hit, instafolding if you miss. The problem is that if any non-spade J hits you may be tempted to call another bet when you're almost certainly losing. I suppose to balance that out if the
![The Jack of Spades [Js]](https://pofex.com/images/smilies/Js.gif)
hits you may get paid big if he happens to have the
![The Nine of Spades [9s]](https://pofex.com/images/smilies/9s.gif)
and can't fold a 1-card idiot end of the straight flush. On the other hand the
![The Nine of Spades [9s]](https://pofex.com/images/smilies/9s.gif)
and
![The Eight of Spades [8s]](https://pofex.com/images/smilies/8s.gif)
may not be outs at all, there's an off chance he has a set right now and a better chance he has the
![The Jack of Spades [Js]](https://pofex.com/images/smilies/Js.gif)
.
So I guess the standard play is to call, unless he's so WT that you don't think you can get $20 more on the river when you hit.