protected Object installView(byte[] buf, int offset, int length) {
        try {
            ViewData data=Util.streamableFromByteBuffer(ViewData.class, buf, offset, length);
            if(data.uuids != null)
                NameCache.add(data.uuids);

            remote_view=data.remote_view;
            if(global_view == null || (data.global_view != null &&!global_view.equals(data.global_view))) {
                global_view=data.global_view;
                synchronized(this) {
                    if(data.global_view.getViewId().getId() > global_view_id)
                        global_view_id=data.global_view.getViewId().getId();
                }
                if(present_global_views)
                    return up_prot.up(new Event(Event.VIEW_CHANGE, global_view));
            }
        }
        catch(Exception e) {
            log.error(Util.getMessage("FailedInstallingView"), e);
        }
        return null;
    }