Strange NPE

Why does the following code:



/**
 * EntryPoint.java
 */

package net.java.dev.bta;

import com.jme.bounding.BoundingBox;
import com.jme.scene.shape.Sphere;
import javax.swing.UIManager;

import com.jme.scene.Node;
import com.jme.input.InputHandler;
import com.jme.renderer.ColorRGBA;
import com.jme.math.Vector3f;
import com.jme.renderer.Camera;
import com.jme.system.DisplaySystem;

import net.java.dev.bta.config.Config;
import net.java.dev.bta.config.GameConfig;
import net.java.dev.bta.engine.JmeModelLoader;
import net.java.dev.bta.engine.input.BtaInputHandler;
import org.jvnet.substance.SubstanceLookAndFeel;

/**
 *
 * @author Rodrigo
 */
public final class BTAGame extends com.jme.app.BaseGame {
   
    private static Config config;
    private static Camera camera;
    private static InputHandler inputHandler;
    private static Node scene;
    private static Node userInterface;
   
    /**
     * Application Entry point
     */
    public static final void main(String args[]) {
        try {
           
            config = new GameConfig();
            config.load();
           
            SubstanceLookAndFeel laf = new SubstanceLookAndFeel();
            laf.setCurrentTheme("org.jvnet.substance.theme.SubstanceSteelBlueTheme");
            UIManager.setLookAndFeel(laf);
           
            new BTAGame().start();
           
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
    }
   
    public static Config getGameConfig() {
        return config;
    }
   
    protected void update(float time) {
        inputHandler.update(time);
    }
   
    protected void render(float time) {
        display.getRenderer().clearBuffers();
        display.getRenderer().draw(scene);
    }
   
    protected void initSystem() {
       
        display = DisplaySystem.getDisplaySystem(DisplaySystem.DISPLAY_SYSTEM_LWJGL);
        display.createWindow(config.getDisplayWidth(), // returns 800
                config.getDisplayHeight(), // returns 600
                config.getDisplayDepth(), // returns 32
                config.getDisplayRefresh(), // returns 60
                config.displayIsFullscreen()); // returns true
       
        display.getRenderer().setBackgroundColor(ColorRGBA.black);
        camera = display.getRenderer().createCamera(config.getDisplayWidth(), config.getDisplayHeight());
        camera.setFrustumPerspective(45.0f, (float)config.getDisplayWidth() / (float)config.getDisplayHeight(), 1, 1000);
       
        // TODO: different cameras
        Vector3f loc = new Vector3f(0.0f, 0.0f, 25.0f); // Into the screen (+Z axis)
        Vector3f left = new Vector3f(-1.0f, 0.0f, 0.0f); // Left is -X axis
        Vector3f up = new Vector3f(0.0f, 1.0f, 0.0f); // Up if +Y axis
        Vector3f dir = new Vector3f(0.0f, 0f, -1.0f); // Out of the screen (-Z axis)
       
        camera.setFrame(loc, left, up, dir);
        camera.update();
       
        inputHandler = new BtaInputHandler();
       
    }
   
    protected void initGame() {
       
        scene = new Node("Root Node");
       
       
        Sphere s = new Sphere("Sphere", 30, 30, 25);
        s.setLocalTranslation(new Vector3f(0, 0, -40));
        s.setModelBound(new BoundingBox());
        s.updateModelBound();
       
        scene.attachChild(s);
       
        scene.updateGeometricState(0.0f, true);
        scene.updateRenderState();
    }
   
    protected void reinit() {
    }
   
    protected void cleanup() {
    }
   
}



Throws this NPE?


Building jar: D:Projectsbtadistbta.jar
run:
13/02/2006 10:58:32 com.jme.app.BaseGame start
INFO: Application started.
13/02/2006 10:58:32 com.jme.system.PropertiesIO <init>
INFO: PropertiesIO created
13/02/2006 10:58:32 com.jme.system.PropertiesIO load
INFO: Read properties
13/02/2006 10:58:32 com.jme.input.joystick.DummyJoystickInput <init>
INFO: Joystick support is disabled
13/02/2006 10:58:32 com.jme.system.lwjgl.LWJGLDisplaySystem <init>
INFO: LWJGL Display System created.
13/02/2006 10:58:33 com.jme.renderer.lwjgl.LWJGLRenderer <init>
INFO: LWJGLRenderer created. W:  800H: 600
13/02/2006 10:58:33 com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
13/02/2006 10:58:33 com.jme.scene.Node <init>
INFO: Node created.
13/02/2006 10:58:33 com.jme.scene.Node attachChild
INFO: Child (Sphere) attached to this node (Scene graph root node)
java.lang.NullPointerException
        at com.jme.scene.Spatial.onDraw(Unknown Source)
        at com.jme.renderer.lwjgl.LWJGLRenderer.draw(Unknown Source)
        at net.java.dev.bta.BTAGame.render(BTAGame.java:67)
        at com.jme.app.BaseGame.start(Unknown Source)
        at net.java.dev.bta.BTAGame.main(BTAGame.java:49)
13/02/2006 10:58:33 com.jme.app.BaseGame start
INFO: Application ending.
[code]

Most likely because the renderer does not have a camera (set it via setCamera).

Thanks, sorry for my noobness, I assumed that the call to createCamera() would also set() it to the Renderer.