Fix bug when not using B::Hooks::OP::Check::StashChange
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / HTTP / Restarter.pm
index 0fffaf0..bae57b1 100644 (file)
@@ -20,9 +20,11 @@ around run => sub {
         close STDIN;
         close STDOUT;
 
+        # Avoid "Setting config after setup" error restarting MyApp.pm
+        $class->setup_finished(0);
         # Best effort if we can't trap compiles..
         $self->_make_components_mutable($class)
-            if !Catalyst::Engine::HTTP::Restarter::Watcher::DETECT_PACKAGE_COMPILATION();
+            if !Catalyst::Engine::HTTP::Restarter::Watcher::DETECT_PACKAGE_COMPILATION;
 
         my $watcher = Catalyst::Engine::HTTP::Restarter::Watcher->new(
             directory => ( 
@@ -81,9 +83,13 @@ around run => sub {
 sub _make_components_mutable {
     my ($self, $class) = @_;
 
-    my @metas = map { find_meta($_) } ($class, map { blessed($_) } values %{ $class->components });
+    my @metas = grep { defined($_) }
+                map { find_meta($_) }
+                ($class, map { blessed($_) }
+                values %{ $class->components });
 
     foreach my $meta (@metas) {
+        # Paranoia unneeded, all component metaclasses should have immutable
         $meta->make_mutable if $meta->is_immutable;
     }
 }