public function onEnd(Event $event)
    {
        $obj = $event->getSubject();
        if ($obj instanceof \DOMNodeList) {
            // for reasons unknown, DOMNodeList's properties are invisible to reflection
            $event['properties']['length'] = \array_merge(static::$basePropInfo, array(
                'type' => 'integer',
                'value' => $obj->length,
            ));
        } elseif ($obj instanceof \Exception) {
            if (isset($event['properties']['xdebug_message'])) {
                $event['properties']['xdebug_message']['isExcluded'] = true;
            }
        } elseif ($obj instanceof \mysqli && !$event['collectPropertyValues']) {
            $propsAlwaysAvail = array(
                'client_info','client_version','connect_errno','connect_error','errno','error','stat'
            );
            $reflectionObject = $event['reflector'];
            foreach ($propsAlwaysAvail as $name) {
                $reflectionProperty = $reflectionObject->getProperty($name);
                $event['properties'][$name]['value'] = $reflectionProperty->getValue($obj);
            }
        }
    }