Bukkit/CraftBukkit — comment on commit 696ba64d7ef779da1cbeafef747b30c29be672f6
File:  line 0
By EdGruberman:

@sunkid: I'll have to test to know the scope, but I know it at least happens on arrows from skeletons and a player's own arrows hitting themselves (shooting straight up and letting the arrow fall back down and hit themselves.)

The following class:

final class DamageMonitor extends EntityListener {

DeathMonitor (final Plugin plugin) {
PluginManager pluginManager = plugin.getServer().getPluginManager();
pluginManager.registerEvent(Event.Type.ENTITY_DAMAGE, this, Event.Priority.Monitor, plugin);
}

@Override
public void onEntityDamage(final EntityDamageEvent event) {
if (event.isCancelled() || !(event.getEntity() instanceof Player)) return;
System.out.println(event.getCause());
}
}

Produces a pair of log entries on each single arrow hit on a Player as such:
2011-11-21 19:14:20 [INFO] PROJECTILE
2011-11-21 19:14:20 [INFO] ENTITY_ATTACK

I just confirmed this is all still happening on CB#1488.