code: private <P extends Annotation> InjectionBinding<?> addOrMergeOverrideInjectionBinding(Class<?> instanceClass,
                                                                                            Member member,
                                                                                            A annotation,
                                                                                            String jndiName) // d675843.2
      throws InjectionException
      {
          @SuppressWarnings("unchecked")
          InjectionProcessor<P, ?> processor = (InjectionProcessor<P, ?>) ivOverrideProcessor;
  
          if (processor != null)
          {
              // This logic is the same as addOrMergeInjectionBinding, except it
              // uses OverrideInjectionProcessor methods to create and merge
              // injection bindings rather than InjectionProcessor and
              // InjectionBinding methods.
  
              InjectionBinding<P> injectionBinding = processor.getInjectionBindingForAnnotation(jndiName);
              @SuppressWarnings("unchecked")
              OverrideInjectionProcessor<P, A> overrideProcessor = (OverrideInjectionProcessor<P, A>) processor;
  
              if (injectionBinding == null)
              {
                  injectionBinding = overrideProcessor.createOverrideInjectionBinding(instanceClass, member, annotation, jndiName);
  
                  if (injectionBinding != null)
                  {
                      processor.updateInjectionBinding(jndiName, injectionBinding);
                      processor.addInjectionBinding(injectionBinding);
                      return injectionBinding;
                  }
              }
              else
              {
                  overrideProcessor.mergeOverrideInjectionBinding(instanceClass, member, annotation, injectionBinding);
                  return injectionBinding;
              }
          }
  
          return null;
      }
docs: Creates and adds a new override injection binding, or merges the data in
  an annotation with an existing override injection binding.
  
  @param <P> the primary annotation class; from the perspective of this
  method, the A type variable is the overridden annotation type
  @param instanceClass the class that contained the annotation
  @param member the member in class that contained the annotation, or
  <tt>null</tt> if the annotation was found at the class level
  @param annotation the override annotation data
  @return true if the override injection binding was created or merged, or
  false if the annotation was not overridden
  @throws InjectionException