Question about Collision Listener [SOLVED]

It maybe an noob question, but I just got myself surprised by it so I would like to confirm.
In a complex game you will have different objects to handle collisions, I had believe the collisions listeners filter only the collisions from its control owner, but I figure out its not what is happening.
It seems every collision listener get all events from all objects, and its bad to have a lot of listners in that case, it may get degrade the performance.
So, should I build in only one collision listener (or only one per group) and only one tick listener per application, and handle the different collisions and logic on it ?
Like, create the listeners on the main java only and just filter and distribute the events to the classes maybe ?

If you want. You don’t have to though…

I am just concern about the performance,
I could filter using the event getname but I am seeing I am lousing a lot of fps if I do it for each object.
Also, dont it look like to be an bug ?
Since when you create the listener you need to associate it to an rigidbody, its natural to expected that its because this listener will handle only collisions for this rigidbody, right ?

I am not sure if this is the fastest way to filter it, but its working for me :
On collision event, you can filter the collisions :

    if( !(event.getNodeA().getControl(AbstractControl.class) instanceof BulletControl) &&
        !(event.getNodeB().getControl(AbstractControl.class) instanceof BulletControl)   ) return;

That way you dont need to be consern about string comparations, and you dont need to care much if you change the name (String setname) of your objects.