question: private void updateAttrs ( SvcReg reg , EntryRep entry , Object [ ] values ) { EntryClass eclass = entry . eclass ; for ( int fldidx = values . length ; -- fldidx >= 0 ; ) { Object oval = entry . fields [ fldidx ] ; Object nval = values [ fldidx ] ; if ( nval != null && ! nval . equals ( oval ) ) { eclass = getDefiningClass ( eclass , fldidx ) ; HashMap map = addAttr ( reg , eclass , fldidx , nval ) ; entry . fields [ fldidx ] = nval ; if ( hasAttr ( reg , eclass , fldidx , oval ) ) continue ; ArrayList regs = ( ArrayList ) map . get ( oval ) ; regs . remove ( regs . indexOf ( reg ) ) ; if ( regs . isEmpty ( ) ) map . remove ( oval ) ; } } }
target:  Store all non-null elements of values into the given entry, and update serviceByAttr to match.