The bug
When summoning an arrow, or updating its NBT (in game), it will have a water effect.
/summon minecraft:arrow
Code analysis
Code analysis by @unknown in this comment.
Linked issues
duplicates 1
Attachments
Comments 13
Confirmed as recently as 18w01a. And I know why, too. The code that clears the potion effect for non-potion arrows is the setPotionEffect method of EntityTippedArrow. This is called whenever an arrow entity is created via the ItemArrow's createArrow() method, as well as when skeletons or dispensers fire an arrow. However, it is not called when the EntityTippedArrow is summoned on its own.
I would suggest that setPotionEffect() be called when an arrow is summoned, and the getArrowStack() method made public. Then it would be as simple as having CommandSummon check if the entity is an instanceof EntityTippedArrow and, if so, call entity.setPotionEffect(entity.getArrowStack()) (similarly to how the summon command currently checks if the entity is an instanceof EntityLiving and calls its onInitialSpawn method if so).
Confirmed for 17w06a.