title: JBehave-Junit-Runner throwing NullPointerException
body: <p>I am new to JBehave and am attempting to use the JBehave-JUnit-Runner to display test results nicely in JUnit in Eclipse Luna (on Ubuntu 12.04).  I am using JBehave-JUnit-Runner 1.1.2, JUnit 4.12-beta-1 and JBehave-core 4.0-beta-9.  When I right-click on my story file and 'Run as JUnit Test' all is well.  However, when I put the @RunWith(JUnitReportingRunner.class) at the top of my story class as required for JBehave-JUnit-Runner, I get the following error:</p>
  
  <pre><code>java.lang.RuntimeException: java.lang.NullPointerException
  at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.run(JUnitReportingRunner.java:80)
  at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
  Caused by: java.lang.NullPointerException
  at de.codecentric.jbehave.junit.monitoring.JUnitScenarioReporter.afterStory(JUnitScenarioReporter.java:114)
  at org.jbehave.core.reporters.DelegatingStoryReporter.afterStory(DelegatingStoryReporter.java:49)
  at org.jbehave.core.reporters.ConcurrentStoryReporter.afterStory(ConcurrentStoryReporter.java:120)
  at org.jbehave.core.embedder.PerformableTree.performBeforeOrAfterStories(PerformableTree.java:399)
  at org.jbehave.core.embedder.StoryManager.performStories(StoryManager.java:102)
  at org.jbehave.core.embedder.StoryManager.runStories(StoryManager.java:93)
  at org.jbehave.core.embedder.StoryManager.runStoriesAsPaths(StoryManager.java:74)
  at org.jbehave.core.embedder.Embedder.runStoriesAsPaths(Embedder.java:204)
  at de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner.run(JUnitReportingRunner.java:78)
  ... 6 more
  </code></pre>
  
  <p>Here is my utility class for testing.  One method, very basic:</p>
  
  <pre><code>package org.felimar;
  
  public abstract class StringManipulation
  {
    public static boolean stringBlank(final String src)
    {
      return src.matches("^\\s*$"); //$NON-NLS-1$
    }
  }
  </code></pre>
  
  <p>The story file for JBehave:</p>
  
  <pre><code>Utilities for managing character strings
  
  Narrative:
  In order to easily manipulate and investigate character strings
  As a development team
  I want to use a group of string-related utilities
  
  Scenario:  A string contains zero or more characters
  Given a source string with value &lt;value&gt;
  Then the method should return &lt;return&gt;
  
  Examples:
  |value|return|
  |""|true|
  |" "|true|
  |"Normal Non-Blank"|false|
  </code></pre>
  
  <p>The steps class:</p>
  
  <pre><code>package org.felimar.steps;
  
  import static org.felimar.StringManipulation.stringBlank;
  
  import org.felimar.StringManipulation;
  import org.jbehave.core.annotations.Given;
  import org.jbehave.core.annotations.Named;
  import org.jbehave.core.annotations.Then;
  
  public class StringManipulationSteps
  {
    private String m_srcString;
  
    public String getSrcString()
    {
      return m_srcString;
    }
  
    @Given("a source string with value $value")
    public void givenValue(@Named("value") final String srcString)
    {
      setSrcString(srcString);
    }
  
    public void setSrcString(final String srcString)
    {
      m_srcString = srcString;
    }
  
    @Then("the method should return $value")
    public void stringBlankRtrns(@Named("value") final boolean isBlank)
    {
      if (stringBlank(getSrcString()) != isBlank)
        throw new RuntimeException("stringBlank did not determine *" +
                                  getSrcString() + "* was " + isBlank);
    }
  }
  </code></pre>
  
  <p>And finally, the story class:</p>
  
  <pre><code>package org.felimar.stories;
  
  import static java.util.Arrays.asList;
  import static org.jbehave.core.reporters.Format.CONSOLE;
  import static org.jbehave.core.reporters.Format.TXT;
  
  import java.util.List;
  
  import org.felimar.StringManipulation;
  import org.felimar.steps.StringManipulationSteps;
  import org.jbehave.core.configuration.MostUsefulConfiguration;
  import org.jbehave.core.junit.JUnitStories;
  import org.jbehave.core.reporters.StoryReporterBuilder;
  import org.jbehave.core.steps.InjectableStepsFactory;
  import org.jbehave.core.steps.InstanceStepsFactory;
  import org.junit.runner.RunWith;
  
  import de.codecentric.jbehave.junit.monitoring.JUnitReportingRunner;
  
  @RunWith(JUnitReportingRunner.class)
  public class StringManipulationStories extends JUnitStories
  {
    public StringManipulationStories()
    {
      super();
      super.useConfiguration(
       new MostUsefulConfiguration().useStoryReporterBuilder(
        new StoryReporterBuilder().withDefaultFormats().withFormats(
            CONSOLE, TXT)));
    }
  
    @Override
    public InjectableStepsFactory stepsFactory()
    {
      return new InstanceStepsFactory(configuration(),
                                     new StringManipulationSteps());
    }
  
    @Override
    protected List&lt;String&gt; storyPaths()
    {
      return asList("org/felimar/stories/StringManipulationStories.story");
    }
  }
  </code></pre>
  
  <p>Are there any obvious errors in any of the code, or should I step back from using the beta libraries?</p>