Can't Find Null Pointer Exception

Hey, guys! I've spent a couple of hours trying to figure this out, and I've been unable. When I run my program, I get a long list of errors that basically says I have a NullPointerException at Line 160 in LevelRenderer. I can't figure out what is null after tons of analyzing and experimenting, so I was wondering if one of you could assist me with this.
First, here is the runtime error code:
Game Update Error: java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at LevelRenderer.paint(LevelRenderer.java:160)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:6
93)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:125)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)Here's the code for the classes that are relevant to the issue. The runtime code is pointing me to the paint method's call of myLevel.drawLevel(gr, 0, 0):
Here's the class that is giving me the error:
/* This class's job is to render a level object.
* The class will keep track of the top left coordinate of the space in which the player is moving
* and how far the right side of the screen is. It will then draw the player always in the center
* of the screen and allow the player to move the character. The character will animate with calls
* to the Player class and also detect collision against the character. If there are collisions, then the
* player will either fall or be unable to move. It will keep the screen image a little bit rendered
* beyond the screen so that when the player moves, it will be able to still be visible until the next tile
* is reached. It will update the screen every time the player moves and reference the level's collision
* map for all of the collisions.
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.JFrame;
import javax.swing.*;
import java.util.Random;
import java.awt.Color;
public class LevelRenderer extends JFrame
    // CONSTANTS
    private final int TILE_SIZE = 14;
    private final int SCREEN_WIDTH = 1280;
    private final int SCREEN_HEIGHT = 768;
    // END OF CONSTANTS
    // will be used as a buffer before everything is drawn to the screen
    private BufferedImage buffer;
    // character object
    private Player myPlayer;
    // level object
    private Level myLevel;
    // screen object
    private Screen s;
    // graphics object of the buffer
    private Graphics gr;
    // boolean to determine when to end the game
    private boolean endGame;
    // CONSTRUCTOR
    public LevelRenderer()
        setPreferredSize(new Dimension(1280, 768));
        setFocusable(true);
        requestFocus();
        setResizable(false);
        addKeyListener( new KeyAdapter()
            public void keyPressed(KeyEvent e)
                processKey(e); 
            public void keyReleased(KeyEvent e)
                processRelease(e);
        buffer = new BufferedImage(1280, 768, BufferedImage.TYPE_INT_ARGB);
        buffer.createGraphics();
        gr = buffer.getGraphics();
        myPlayer = new Player();
        Level myLevel = new Level("obstaclemap");
        endGame = false;
    // method to simply load an image from a path
    public static BufferedImage loadImage(String ref)
        BufferedImage bimg = null;
        try
           bimg = ImageIO.read(new File(ref));
        catch (Exception e)
            e.printStackTrace();
        return bimg;
    // Run method for class
    public void run(DisplayMode dm)
        setBackground(Color.WHITE);
          s = new Screen();
        try
            s.setFullScreen(dm, this);
        catch (Exception ex)
            System.out.println("Error creating rendered tiles!");
          while (!endGame)
            try
                Thread.sleep(2);
            catch (Exception ex)
                System.err.println("Error: " + ex);
            try
                myPlayer.animatePlayer();
                myLevel.renderLevel();
            catch (NullPointerException ex)
                System.err.println("Game Update Error: " + ex);
            try
                repaint();
            catch (Exception ex)
                System.err.println("Repaint Error: " + ex);
          s.restoreScreen();
    // method to draw the tiles on the screen
    public void paint(Graphics g)
        // draw the level and then the player
        myLevel.drawLevel(gr, 0, 0); 
        myPlayer.drawPlayer(gr, (SCREEN_WIDTH / 2) - TILE_SIZE / 2, (SCREEN_HEIGHT / 2) - TILE_SIZE);
        g.drawImage(buffer, 0, 0, null);
    // method to handle inputs and adjust the player accordingly
    public void processKey(KeyEvent e)
        int keyCode = e.getKeyCode();
        boolean moved = false;
        int xDisplace, yDisplace;
        // termination key
        if (keyCode == KeyEvent.VK_ESCAPE)
            endGame = true;
        // 1 - up
        // 2 - left
        // 3 - right
        // 4 - down
        // 5 - jump
        if (keyCode == KeyEvent.VK_UP)
            try
                myPlayer.updatePlayer(0);
                myLevel.updateLevel(0);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_LEFT)
            try
                myPlayer.updatePlayer(1);
                myLevel.updateLevel(1);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_RIGHT)
            try
                myPlayer.updatePlayer(2);
                myLevel.updateLevel(2);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_DOWN)
            try
                myPlayer.updatePlayer(3);
                myLevel.updateLevel(3);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_SPACE)
            try
                myPlayer.updatePlayer(4);
                myLevel.updateLevel(4);
            catch (Exception ex)
                System.err.println("Error: " + ex);
    // method to handle inputs and adjust the player accordingly
    public void processRelease(KeyEvent e)
        int keyCode = e.getKeyCode();
        boolean moved = false;
        int xDisplace, yDisplace;
        // 1 - up
        // 2 - left
        // 3 - right
        // 4 - down
        // 5 - jump
        if (keyCode == KeyEvent.VK_UP)
            try
                myPlayer.updatePlayer(0);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_LEFT)
            try
                myPlayer.updatePlayer(5);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_RIGHT)
            try
                myPlayer.updatePlayer(6);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_DOWN)
            try
                myPlayer.updatePlayer(3);
            catch (Exception ex)
                System.err.println("Error: " + ex);
        if (keyCode == KeyEvent.VK_SPACE)
            try
                myPlayer.updatePlayer(4);
            catch (Exception ex)
                System.err.println("Error: " + ex);
}And then here's the other class that is calling the drawLevel method that the compiler is pointing me in the direction of (where it's saying the NullPointerException is stemming from):
/* The purpose of this class will be to load and manage a level, including its camera. */
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.awt.*;
public class Level
    // CONSTANTS
    private final int TILE_SIZE = 14;
    private final int SCREEN_WIDTH = 1280;
    private final int SCREEN_HEIGHT = 768;
    // END OF CONSTANTS
    // stores the pixel image of the current level
    private BufferedImage levelImage;
    // stores the width and height of the level
    private int width, height;
    // stores the name of the level
    private String levelName;
    // stores collision map for level
    private LevelCollisions myCollisions;
    // stores the tile types in an array as assigned by colors
    private int levelTiles[][];
    // image used as the sheet for the level's tiles
    private BufferedImage tileSheet;
    // image array used to store the different tiles
    private BufferedImage[] tiles;
    // the image which represents the current view of the level
    private BufferedImage cameraImage;
    // Graphics context of the camera image
    private Graphics cameraG;
    // variables to represent the level's offset from the top left corner while moving
    private int offsetX, offsetY;
    // variables to represent the level's pixel map coordinate
    private int coordX, coordY;
    // STATIC COLOR VARIABLES
    private static final int SPACE_COLOR = 0xFF000000;
    private static final int WALL_COLOR = 0xFFFFFFFF;
    // END OF STATIC COLOR VARIABLES
    // CONSTRUCTOR
    public Level(String level)
        // load level image and collision map
        levelName = level;
        levelImage = loadImage(level + ".png");
        myCollisions = new LevelCollisions(level + "Collision");
        levelTiles = loadLevel();  
        // create blank camera canvas
        cameraImage = new BufferedImage(1280, 768, BufferedImage.TYPE_INT_ARGB);
        cameraImage.createGraphics();
        cameraG = cameraImage.getGraphics();
        // offsets start at 0
        offsetX = offsetY = 0;
        // coordinate starts at bottom right
        coordX = 700;
        coordY = 400;
        // fill tile images
        tileSheet = loadImage("obstacletiles.png");
        tiles = splitImage(tileSheet, 1, 2);
        this.renderLevel();
    // method to load the color values into an array
    public int[][] loadLevel()
        height = levelImage.getHeight();
        width = levelImage.getWidth();
        int levelValues[][] = new int[width][height];
        // fill array with color values layer by layer
        for (int y = 0; y < height; y++)
            for (int x = 0; x < width; x++)
                levelValues[x][y] = levelImage.getRGB(x, y);
        return levelValues;
    // method to get the tile color from a given tile
    public int getTile(int x, int y)
        return levelTiles[x][y];
    // method to draw the current camera view of the level on the screen
    public void drawLevel(Graphics gr, int x, int y)
        gr.drawImage(cameraImage, x, y, null);
    // method to render the actual image before drawing it
    public void renderLevel()
        // keeps track of graphics coordinate
        int x, y;
        // keeps track of tile to draw
        int tileX, tileY;
        tileY = coordY;
        // draw all the tiles based on offsets, layer by layer
        for (y = offsetY; y < SCREEN_HEIGHT + offsetY; y += TILE_SIZE)
            tileX = coordX;
            for (x = offsetX; x < SCREEN_WIDTH + offsetX; x += TILE_SIZE)
                // determine which tile to draw based on tile color in array
                switch (this.getTile(tileX, tileY))
                    case SPACE_COLOR:
                        cameraG.drawImage(tiles[0], x, y, null);
                        break;
                    case WALL_COLOR:
                        cameraG.drawImage(tiles[1], x, y, null);
                        break;
                tileX++;
        // steps to take in case of an offset
        if (offsetX > 0)
        if (offsetX < 0)
        if (offsetY < 0)
        if (offsetY > 0)
    // method to update the level's current position for the camera
    public void updateLevel(int input)
        switch (input)
            // up
            case 0:
                break;
            // left
            case 1:
                // update offset to the left if not too far left
                if (coordX > 30)
                    offsetX--;
                // if a tile has been moved, then offset becomes 0 and coordX is decreased
                if (offsetX <= -TILE_SIZE)
                    offsetX = 0;
                    coordX--;
                break;
            // right
            case 2:
                // update offset to the right if not too far right
                if (coordX < width - 30)
                    offsetX++;
                // if a tile has been moved, then offset becomes 0 and coordX is increased
                if (offsetX >= TILE_SIZE)
                    offsetX = 0;
                    coordX++;
                break;
            // down
            case 3:
                break;
            // jump
            case 4:
                break;
    // method to simply load an image from a path
    public static BufferedImage loadImage(String ref)
        BufferedImage bimg = null;
        try
           bimg = ImageIO.read(new File(ref));
        catch (Exception e)
            e.printStackTrace();
        return bimg;
    // method to create a tile array for tile sets
    public static BufferedImage[] splitImage(BufferedImage img, int cols, int rows)
        int w = img.getWidth() / cols;
        int h = img.getHeight() / rows;
        int num = 0;
        BufferedImage imgs[] = new BufferedImage[w * h];
        for (int y = 0; y < rows; y++)
            for (int x = 0; x < cols; x++)
                imgs[num] = new BufferedImage(w, h, img.getType());
                Graphics2D g = imgs[num].createGraphics();
                g.drawImage(img, 0, 0, w, h, w * x, h * y, w * x + w, h * y + h, null);
                g.dispose();
                num++;
        return imgs;
    // image-loading method that will also alpha the color key for each tile
    public static BufferedImage makeColorTransparent(String ref, int color)
        BufferedImage image = loadImage(ref);
        BufferedImage dimg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = dimg.createGraphics();
        g.setComposite(AlphaComposite.Src);
        g.drawImage(image, null, 0, 0);
        g.dispose();
        for (int i = 0; i < dimg.getHeight(); i++)
            for (int j = 0; j < dimg.getWidth(); j++)
                if (dimg.getRGB(j, i) == color)
                    dimg.setRGB(j, i, 0x8F1C1C);
        return dimg;
}Sorry for the long post, but since there are several objects involved in what could be the error, I didn't want to leave anything out of this one. Help is greatly appreciated! Thank you guys very much.
Colton
Edited by: coltonoscopy on Oct 2, 2011 11:57 PM

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at LevelRenderer.paint(LevelRenderer.java:160)
// method to draw the tiles on the screen
public void paint(Graphics g)
// draw the level and then the player
myLevel.drawLevel(gr, 0, 0); 
myPlayer.drawPlayer(gr, (SCREEN_WIDTH / 2) - TILE_SIZE / 2, (SCREEN_HEIGHT / 2) - TILE_SIZE);
g.drawImage(buffer, 0, 0, null);
}So one of those three lines is line 160, and whichever line it is, is dereferencing a null pointer. So one of 'myLevel', 'myPlayer', or 'g' is null. Probably not 'g' as you received it as a parameter from Swing. Pretty much cuts it down.
There's nothing here you couldn't have worked out for yourself. The line number was all you needed.

Similar Messages

  • I can't figure out why I'm getting a Null Pointer Exception

    I'm writing a program that calls Bingo numbers. I got that part of the program to work but when I started adding Swing I kept getting a Null Pointer Exception and I don't know how to fix it. The Exception happens on line 15 of class Panel (g = image.getGraphics();). Here is the code for my classes. I'm still not finished with the program and I can't finish it until I know that this issue is resolved.
    package Graphics;
    import java.awt.Graphics;
    import javax.swing.JFrame;
    public class DrawFrame extends JFrame{
         public Panel panel;
         public DrawFrame(int x, int y, String s) {
              super(s);
              this.setBounds(0, 0, x, y);
              this.setResizable(false);
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              this.setPreferredSize(getSize());
              panel = this.getPanel();
              this.getContentPane().add(panel);
              panel.init();
              this.setVisible(true);
         public Graphics getGraphicsEnvironment(){
              return panel.getGraphicsEnvironment();
         Panel getPanel(){
              return new Panel();
    package Graphics;
    import javax.swing.JPanel;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Image;
    public class Panel extends JPanel{
         Graphics g;
         Image image;
         public void init() {
              image = this.createImage(this.getWidth(), this.getHeight());
              g = image.getGraphics();
              g.setColor(Color.white);
              g.fillRect(0, 0, this.getWidth(), this.getHeight());
         Graphics getGraphicsEnvironment() {
              return g;
         public void paint(Graphics graph) {
              if (graph == null)
                   return;
              if (image == null) {
                   return;
              graph.drawImage(image, 0, 0, this);
    package Graphics;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    public class Keys extends KeyAdapter{
    public int keyPressed; //creates a variable keyPressed that stores an integer
    public void keyPressed(KeyEvent e) { //creates a KeyEvent from a KeyListner
              keyPressed = e.getKeyCode(); //gets the key from the keyboard
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.event.KeyEvent;
    import Graphics.*;
    public class Bingo {
         static Ball balls[][] = new Ball[5][15]; //creates a 2D 5 by 15 array
         public static void main(String[] args) {
              DrawFrame frame = new DrawFrame(1500, 500, "Welcome to the automated Bingo Caller."); //creates instance of DrawFrame that is 1000 pixels wide and 500 pixels high
              Graphics g = frame.getGraphicsEnvironment(); //calls the getGraphicsEnvironment method in the DrawFrame class
              Keys key = new Keys(); //creates instance of the Key class
              frame.addKeyListener(key); //adds a KeyListener called Key
              for (int x = 0; x < 5; x++) { //fills rows
                   for (int y = 0; y < 15; y++) { //fills columns
                        balls[x][y] = new Ball(x, y+1); //fills array
              frame.pack(); //adjusts the size of the frame so everything fits
              g.setColor(Color.black); //sets the font color to black
              g.setFont(new Font("MonoSpace", Font.PLAIN, 20)); //creates new font
              for(int y=0;y<balls.length;y++){ //draws all possible balls
                   g.drawString(balls[y][0].s, 0, y*100); //draws numbers
                   for(int x=0;x<balls[y].length;x++){ //draws all possible balls
                        g.drawString(balls[y][x].toString(), (x+1)*100, y*100); //draws letters
              do {
                   frame.repaint(); //repaints the balls when one is called
                   int x, y; //sets variables x and y as integers
                   boolean exit; //sets a boolean to the exit variable
                   do {
                        exit = false; //exit is set to false
                        x = (int)(Math.random() * 5); //picks a random number between 0 and 4 and stores it as x
                        y = (int)(Math.random() * 15); //picks a random number between 0 and 14 stores it as y
                        if (!balls[x][y].called) { //checks to see if a value is called
                             exit = true; //changes exit to true if it wasn't called
                             balls[x][y].called = true; //sets called in the Ball class to true if it wasn't called
                             System.out.println(balls[x][y]); //prints value
                   } while (!exit); //if exit is false, returns to top of loop
                   int count = 0; //sets a count for the number of balls called
                   for(int z=0;z<balls.length;z++){ //looks at balls
                        g.setColor(Color.black); //displays in black
                        g.drawString(balls[z][0].s, 0, z*100); //draws balls as a string
                        for(int a=0;a<balls[z].length;a++){ //looks at all balls
                             if (balls[z][a].called){ //if a ball is called
                                  g.setColor(Color.red); //change color to red
                                  count++; //increments count
                             } else {
                                  g.setColor(Color.black); //if it isn't called stay black
                             g.drawString(balls[z][a].toString(), (a+1)*100, y*100); //draws balls as string
                   do {
                        if (key.keyPressed == KeyEvent.VK_R||count==5*15) { //if R is pressed or count = 5*15
                             count=5*15; //changes count to 5*15
                             for(int z=0;z<balls.length;z++){ //recreates rows
                                  g.setColor(Color.black); //sets color to black
                                  g.drawString(balls[z][0].s, 0, z*100); //redraws rows
                                  for(int a=0;a<balls[z].length;a++){ //recreates columns
                                       balls[z][a] = new Ball(z, a+1); //fills array
                                       g.drawString(balls[z][a].toString(), (a+1)*100, z*100); //redraws columns
                   } while (key.keyPressed!=KeyEvent.VK_ENTER || count == 5 * 15); //determines if the key was pressed or counter is 5*15s
              } while (key.keyPressed == KeyEvent.VK_ENTER);
    public class Ball {
         String s; //initiates s that can store data type String
         int i; //initiates i that can store data as type integer
         boolean called = false; //initiates called as a boolean value and sets it to false
         public Ball(int x, int y) {
              i = (x * 15) + y; //stores number as i to be passed to be printed
              switch (x) { //based on x value chooses letter
              case 0:
                   s = "B";
                   break;
              case 1:
                   s = "I";
                   break;
              case 2:
                   s = "N";
                   break;
              case 3:
                   s = "G";
                   break;
              case 4:
                   s = "O";
         public String toString() { //overrides toString method, converts answer to String
              return s + " " + i; //returns to class bingo s and i
    }

    The javadoc of createImage() states that "The return value may be null if the component is not displayable."
    Not sure, but it may be that you need to call init() after this.setVisible(true).

  • Null Pointer exception while invoking BPEL process

    Hi all,
    I am getting following exception when I am invoking a BPEL process1 (deployed in 10.1.3.1) from another BPEL Process 2 (deployed in 10.1.3.3)
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>env:Server</faultcode>
    <faultstring>java.lang.NullPointerException</faultstring>
    <faultactor/>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    BPEL Process 1 is working fine when given manual input (testing through console). But when invoked using BPEL Process 2, it gives the above error. I also tried invoking BPEL Process 1 (and many other webservices deployed in 10.1.3.1) using TCPMON tool and got the same error.
    Am I missing something here in configuration of 10.1.3.1 or any other issue? Please help as it is really urgent.

    Contact [email protected]
    Slava Imeshev wrote:
    Hi Ramu,
    "Ramu" <[email protected]> wrote in message
    I have just upgraded to service pack #13 on WLS 5.1 from service pack #6.I am using the same code as it was with SP #6. When I invoke finder method
    on entity bean, I get null pointer exception. The primary key object for the
    entity bean has equals() method.
    javax.ejb.FinderException: Exception executing finder:java.lang.NullPointerException
    atweblogic.ejb.internal.StatefulEJBCache.getFinderContext(StatefulEJBCache.jav
    a:264)
    atweblogic.ejb.internal.StatefulEJBCache.getEJBContext(StatefulEJBCache.java:3
    54)
    Check if equals() method can handle null parameter.
    Regards,
    Slava Imeshev--
    Rajesh Mirchandani
    Developer Relations Engineer
    BEA Support

  • Null pointer exception in embedded component

    Hi all,
    I am trying to build a custom component that serves as a container. Unfortunately I consistently hit a null pointer exception in javax.swing.BufferStrategyPaintManager.flushAccumulatedRegion when my custom component contains a JPanel.
    You'll find below the smallest code that reproduces the problem and the exception that comes with it.
    In my testing I noticed few things:
    - If the contained object is simple (a JButton for example), there is no problem.
    - When I turn off double buffering, there is no problem.
    - I figured out that I need to set the contained component size and its internal components to have it display properly.
    I can't figure out what would make this work.
    I'm using JDK 6.
    package test;
    import java.awt.*;
    import javax.swing.*;
    public class Test {
         public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
         private static void createAndShowGUI() {
              // internal panel
              JPanel lPanel = new JPanel();
              JButton lButton = new JButton("Button 1");
              lButton.setSize(lButton.getPreferredSize());
              lPanel.add(lButton);
              IntComponent b = new IntComponent(lPanel);
              JFrame lFrame = new JFrame("internal panel test");
              //RepaintManager.currentManager(null).setDoubleBufferingEnabled(false);
              lFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              lFrame.getContentPane().add(b);
              lFrame.pack();
              lFrame.setVisible(true);
    class IntComponent extends JComponent {
         private JComponent mInternalComponent;
         public IntComponent(JComponent iComponent) {
              mInternalComponent=iComponent;
              mInternalComponent.setSize(mInternalComponent.getPreferredSize());
         public Dimension getMaximumSize() {
              return getPreferredSize();
         public Dimension getMinimumSize() {
              return getPreferredSize();
         public Dimension getPreferredSize() {
              return mInternalComponent.getPreferredSize();
         protected void paintComponent(Graphics g) {
              mInternalComponent.paint(g);
    }Exception:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
         at javax.swing.BufferStrategyPaintManager.flushAccumulatedRegion(BufferStrategyPaintManager.java:406)
         at javax.swing.BufferStrategyPaintManager.endPaint(BufferStrategyPaintManager.java:370)
         at javax.swing.RepaintManager.endPaint(RepaintManager.java:1192)
         at javax.swing.JComponent.paint(JComponent.java:1016)
         at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
         at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
         at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
         at java.awt.Container.paint(Container.java:1797)
         at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:734)
         at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
         at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
         at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

    import java.awt.*;
    import javax.swing.*;
    class Test {
      public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
      private static void createAndShowGUI() {
        JPanel lPanel = new JPanel();
        JButton lButton = new JButton("Button 1");
        lPanel.add(lButton);
        IntComponent b = new IntComponent(lPanel);
        JFrame lFrame = new JFrame("internal panel test");
        lFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        lFrame.getContentPane().add(b);
        lFrame.pack();
        lFrame.setVisible(true);
    class IntComponent extends JComponent {
      private JComponent mInternalComponent;
      public IntComponent(JComponent iComponent) {
        mInternalComponent=iComponent;
        setLayout(new FlowLayout());//<--added
        add(mInternalComponent);//<--added
      public Dimension getMaximumSize() {
        return getPreferredSize();
      public Dimension getMinimumSize() {
        return getPreferredSize();
      public Dimension getPreferredSize() {
        return mInternalComponent.getPreferredSize();
      protected void paintComponent(Graphics g) {
        //mInternalComponent.paint(g);//<--error from this
        super.paintComponent(g);//<---added
    }

  • Max Beans in Cache causes NULL Pointer Exception

    Hi All,
    a rather weird event (from our perspective) occurs when we do the
    following:
    We have an entity bean set to max beans in cache 100 (default value of
    our deployment tool ), the database table related to that bean holds
    lets say 300 entries.
    Doing a find all and in the same session bean instanciated transaction a
    processing loop over the enumeration of beans we get an NULL Pointer
    exception when accesing the 101 Bean. Neverthless the Weblogic server
    increases the cache size automatically but obviously not fast enough and
    not on time.
    has anyone experienced the same problem and has a fix for it, appart
    from increasing the cache size in the deployment descriptor ?
    any help welcome
    Michael

    Hi Michael.
    Can you post the stack trace of the NullPointerException? Was it in
    your code or ours? Also, what version of WebLogic are you using?
    -- Rob
    Rob Woollen
    Software Engineer
    BEA WebLogic
    [email protected]
    Michael Rupprecht wrote:
    Hi All,
    a rather weird event (from our perspective) occurs when we do the
    following:
    We have an entity bean set to max beans in cache 100 (default value of
    our deployment tool ), the database table related to that bean holds
    lets say 300 entries.
    Doing a find all and in the same session bean instanciated transaction a
    processing loop over the enumeration of beans we get an NULL Pointer
    exception when accesing the 101 Bean. Neverthless the Weblogic server
    increases the cache size automatically but obviously not fast enough and
    not on time.
    has anyone experienced the same problem and has a fix for it, appart
    from increasing the cache size in the deployment descriptor ?
    any help welcome
    Michael

  • Help with Null Pointer Exception

    Hi, I am working on a simple menu program. It compiles and works correctly except for one item. I am having a problem with Greying out a menu item...... Specifically, When I press the EDIT / OPTIONS / READONLY is supposed to Greyout the Save and SaveAs options. But, when I do that it displays a Null Pointer Exception error message in the command window.
    Your advice would be much appreciated!
    Now for the code
    /  FileName Menutest.java
    //  Sample Menu
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class MenuTest extends JFrame {
       private Action saveAction;
         private Action saveAsAction;
         private JCheckBoxMenuItem readOnlyItem;
       // set up GUI
       public MenuTest()
          super( "Menu Test" );
    //*   file menu and menu items
          // set up File menu and its menu items
          JMenu fileMenu = new JMenu( "File" );
          // set up New menu item
          JMenuItem newItem = fileMenu.add(new TestAction( "New" ));
          // set up Open menu item
          JMenuItem openItem = fileMenu.add(new TestAction( "Open" ));
              //  add seperator bar
              fileMenu.addSeparator();
          // set up Save menu item
          JMenuItem saveItem = fileMenu.add(new TestAction( "Save" ));
          // set up Save As menu item
          JMenuItem saveAsItem = fileMenu.add(new TestAction( "Save As" ));
              //  add seperator bar
              fileMenu.addSeparator();
              // set up Exit menu item
          JMenuItem exitItem = new JMenuItem( "Exit" );
          exitItem.setMnemonic( 'x' );
          fileMenu.add( exitItem );
          exitItem.addActionListener(
             new ActionListener() {  // anonymous inner class
                // terminate application when user clicks exitItem
                public void actionPerformed( ActionEvent event )
                   System.exit( 0 );
             }  // end anonymous inner class
          ); // end call to addActionListener
    //*   Edit menu and menu items
              // set up the Edit menu
              JMenu editMenu = new JMenu( "Edit" );
              //JMenuItem editMenu = new JMenu( "Edit" );
          // set up Cut menu item
          Action cutAction = new TestAction("Cut");
          cutAction.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif"));
          // set up Copy menu item
          Action copyAction = new TestAction("Copy");
          copyAction.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif") );
          // set up Paste menu item
          Action pasteAction = new TestAction("Paste");
          pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("paste.gif") );
              editMenu.add(cutAction);
              editMenu.add(copyAction);
              editMenu.add(pasteAction);
          //  add seperator bar
              editMenu.addSeparator();
              // set up Options menu, and it submenus and items
              JMenu optionsMenu = new JMenu("Options");
              readOnlyItem = new JCheckBoxMenuItem("Read-only");
              readOnlyItem.addActionListener(
                   new ActionListener()
                   {  //  anonymous inner class
                        public void actionPerformed( ActionEvent event)
                          saveAction.setEnabled(!readOnlyItem.isSelected());
                          saveAsAction.setEnabled(!readOnlyItem.isSelected());
                }  // end anonymous inner class
              ); // end call to addActionListener
              optionsMenu.add(readOnlyItem);
              // add seperator bar
              optionsMenu.addSeparator();
              //  Work on Radio Buttons
              ButtonGroup textGroup = new ButtonGroup();
              JRadioButtonMenuItem insertItem = new JRadioButtonMenuItem("Insert");
              insertItem.setSelected(true);
              JRadioButtonMenuItem overTypeItem = new JRadioButtonMenuItem("Overtype");
              textGroup.add(insertItem);
              textGroup.add(overTypeItem);
              optionsMenu.add(insertItem);
              optionsMenu.add(overTypeItem);
              editMenu.add(optionsMenu);
    //*   Help menu and menu items
              // set up the Help menu
              JMenu helpMenu = new JMenu( "Help" );
              helpMenu.setMnemonic( 'H' );
          // set up index menu item
          JMenuItem indexItem = helpMenu.add(new TestAction( "Index" ));
          indexItem.setMnemonic( 'I' );
          helpMenu.add( indexItem );
              // set up About menu item
          JMenuItem aboutItem = new JMenuItem( "About" );
          aboutItem.setMnemonic( 'A' );
          helpMenu.add( aboutItem );
          aboutItem.addActionListener(
             new ActionListener() {  // anonymous inner class
                // display message dialog when user selects Open
                public void actionPerformed( ActionEvent event )
                   JOptionPane.showMessageDialog( MenuTest.this,
                      "This is MenuTest.java \nVersion 1.0 \nMarch 15, 2004",
                      "About", JOptionPane.PLAIN_MESSAGE );
             }  // end anonymous inner class
          ); // end call to addActionListener
          // create menu bar and attach it to MenuTest window
          JMenuBar bar = new JMenuBar();
          setJMenuBar( bar );
          bar.add( fileMenu );
              bar.add( editMenu );
              bar.add( helpMenu );
          setSize( 500, 200 );
          setVisible( true );
       } // end constructor
       public static void main( String args[] )
          MenuTest application = new MenuTest();
          application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
       // inner class to handle action events from menu items
       private class ItemHandler implements ActionListener {
          // process color and font selections
          public void actionPerformed( ActionEvent event )
           repaint();
          } // end method actionPerformed
       } // end class ItemHandler
       //  Prints to action name to System.out
      class TestAction extends AbstractAction
              public TestAction(String name) { super(name); }
          public void actionPerformed( ActionEvent event )
             System.out.println(getValue(Action.NAME) + " selected." );
       } // end class TestAction
    } // end class MenuTest

    alan, I've been trying to figure out a solution.
    You can initialize it like this
    private Action saveAction= new Action();
         private Action saveAsAction=new Action();
    THE ABOVE WILL NOT WORK.
    because Action is an interface. An interface does not have constructors. However, interface references are used for polymorphic purposes.
    Anyway, all you have to do is find some class that implemets Action interface.... I cant seem to find one. Or maybe this is not how its supposed to be done?
    Hopefully, someone can shed some light on this issue.
    FYI,
    http://java.sun.com/products/jfc/swingdoc-api-1.1/javax/swing/Action.html

  • Oracle 10g JDev IDE 9.0.5.2 Null Pointer Exception while debugging

    Hi,
    In windows XP m/c, I am facing following Null Pointer
    Exception while debugging basic Java application through
    10g JDev 9.0.5.2, and it failed in debugging that application...
    May I know, How to get it out of this problem..., am
    suspecting Is it related to any of my windows XP configuration?
    Here's the stack trace shown in the 10g JDev console while
    debugging simple java application..,
    java.lang.NullPointerException
    at javax.swing.border.EmptyBorder.<init>(EmptyBorder.java:54)
    at com.sun.java.swing.plaf.windows.WindowsTableHeaderUI$XPDefaultRendere
    r.getTableCellRendererComponent(WindowsTableHeaderUI.java:63)
    at oracle.jdevimpl.runner.debug.ThreadsPanel$3.getTableCellRendererCompo
    nent(ThreadsPanel.java:306)
    at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderRenderer(BasicTabl
    eHeaderUI.java:394)
    at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableH
    eaderUI.java:428)
    at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTable
    HeaderUI.java:454)
    at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTable
    HeaderUI.java:485)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1275)
    at oracle.jdevimpl.runner.debug.ThreadsPanel.threadsPanelSettingsChanged
    (ThreadsPanel.java:538)
    at oracle.jdevimpl.runner.debug.ThreadsWindow$AllThreadsPanel.threadsWin
    dowSettingsChanged(ThreadsWindow.java:408)
    at oracle.jdevimpl.runner.debug.ThreadsWindow.threadsWindowSettingsChang
    ed(ThreadsWindow.java:138)
    at oracle.jdevimpl.runner.debug.ThreadsWindow.<init>(ThreadsWindow.java:
    112)
    at oracle.jdevimpl.runner.debug.JDebugger.getThreadsWindow(JDebugger.jav
    a:3048)
    at oracle.jdevimpl.runner.debug.DebuggingProcess.selected(DebuggingProce
    ss.java:565)
    at oracle.ideimpl.runner.RunManager.viewSelectionChanged(RunManager.java
    :467)
    at oracle.ide.addin.AbstractView.fireViewSelectionChanged(AbstractView.j
    ava:484)
    at oracle.ideri.navigator.DefaultNavigatorWindow.fireViewSelectionChange
    d(DefaultNavigatorWindow.java:791)
    at oracle.ideri.navigator.DefaultNavigatorWindow$3.viewSelectionChanged(
    DefaultNavigatorWindow.java:1218)
    at oracle.ide.addin.AbstractView.fireViewSelectionChanged(AbstractView.j
    ava:484)
    at oracle.ideimpl.explorer.BaseTreeExplorer.actionPerformed(BaseTreeExpl
    orer.java:2077)
    at javax.swing.Timer.fireActionPerformed(Timer.java:271)
    at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh

    John,
    You mentioned "I closed the IDE so that the TopLink project would pick up the changes..."
    1. We need to find out why you needed to close the IDE? Was TopLink mapping editor not picking up your changes?
    2. I am sure you did not modified .java outside of Jdev, but in case if you did, let me know.
    3. After removing a superclass attribute, did you save all changes?
    4. We tried various combinations, but were unable to reproduce the project reopen issue that you mentioned was fixed by changing the ClassDescriptor.xml. It would be extremely helpful if you could either send us (anuj dot k dot jain at oracle dot com) a project that can reproduce this issue, or outline the exact steps.

  • 9.3.3 Upgrade, null pointer exception when accessing business rules and mac

    Hello,
    We upgraded from 9.3.1 to 9.3.3. In the Essbase Administration Services Console, when I attempt to access business rules or macros from a client PC, we get a null pointer exception. The message does not tell us much, but I cannot find more.
    I can access business rules and macros using EAS Console from the server. Do I have a bad installation, or have I missed a step?
    Thank you,

    Hi,
    You might have to re-organize your application module hierarchy to place your common code.
    If your intension is to auto populate the primary key for your Entity Objects., I would suggest below common practice.
    1). Create a Base Entity Impl class for your project that extends oracle.jbo.server.EntityImpl
    2). Code your getDbSequence() method inside this base entity impl class
    3). Make sure that all your Entity Objects extend your base entity impl class
    4). Use EL expression to call this method for auto-generating primary key attribute of your Entity Object.
    e.g., adf.object.getDbSequence("sequenceName")
    Regards,
    Eshwar

  • Really frustrating Null Pointer Exception

    Hi I had the day off and was bored so I decided to start work on a poker game. Today I just started making a deck of cards and drawing a random card from it. However it isn't working as I get a very annoying null pointer exception which I don't understand. Anyway I will post my code:
    public class DeckOfCards
         public static void main(String args[])
              Deck daDeck = new Deck();
              Card[] drawnCards = new Card[10];
              for (int i=0; i < 10; ++i)
                   drawnCards[i] = daDeck.DrawCard();
                   System.out.println(drawnCards.getTitle());
    import java.util.*;
    public class Deck
         Suit Hearts;
         Suit Diamonds;
         Suit Spades;
         Suit Clubs;
         public void Deck()
              Hearts = new Suit("Hearts");
              Diamonds = new Suit("Diamonds");
              Spades = new Suit("Spades");
              Clubs = new Suit("Clubs");
         public Card DrawCard()
              System.out.println("Drawing card...");
              Random generator = new Random();
              Card card = null;
              System.out.println("Card variable inited");
              while (card == null)
                   System.out.println("Bleep");
                   switch (generator.nextInt(4))
                        case 0:
                             System.out.println("0");
                             return Hearts.getAvailableCard();
                        case 1:
                             System.out.println("1");
                             return Diamonds.getAvailableCard();
                        case 2:
                             System.out.println("2");
                             return Spades.getAvailableCard();
                        case 3:
                             System.out.println("3");
                             return Clubs.getAvailableCard();
                        default:
                             System.out.println("none");                    
              System.out.println("Exited while loop");
              return card;
    import java.util.*;
    public class Suit
         Card[] cards = new Card[13];
         public Suit(String suit_)
              cards[0] = new Card("Two", suit_);
              cards[1] = new Card("Three", suit_);
              cards[2] = new Card("Four", suit_);
              cards[3] = new Card("Five", suit_);
              cards[4] = new Card("Six", suit_);
              cards[5] = new Card("Seven", suit_);
              cards[6] = new Card("Eight", suit_);
              cards[7] = new Card("Nine", suit_);
              cards[8] = new Card("Ten", suit_);
              cards[9] = new Card("Jack", suit_);
              cards[10] = new Card("Queen", suit_);
              cards[11] = new Card("King", suit_);
              cards[12] = new Card("Ace", suit_);
         public Card getAvailableCard()
              System.out.println("Getting an available card...");
              Random generator = new Random();
              Card card = new Card();
              int randomNo = generator.nextInt(13);
              System.out.println(randomNo);
              if (cards[randomNo].isAvailable())
                   return cards[randomNo];
              return card;
    public class Card
         String strValue;
         String suitName;
         int value;
         int suit;
         boolean available = true;
         public Card()
              strValue = "Out";
              suitName = "cards";
         public Card(String strValue_, String suitName_)
              strValue = strValue_;
              suitName = suitName_;
         public String getTitle()
              String title = strValue + " of " + suitName;
              return title;
         public void setAvailable(boolean available_)
              available = available_;
         public boolean isAvailable()
              return available;
    What the program is meant to do is create a deck of cards, then pick ten cards, randomly picking a suit and card in that suit. If the card has already been drawn ( not available ) then the DrawCard() method should repick a suit and card and try again. The program may be doing something differently to what I have said and may be a bit messy just because I have messed around with things trying to understand why I am getting the exception. This is the exception:
    Exception in thread "main" java.lang.NullPointerException
    at Deck.DrawCard(Deck.java:34)
    at DeckOfCards.main(DeckOfCards.java:13)
    The program doesn't even make it to the first line of the getAvailableCard() method in the Suit Class.
    So all I am asking is can anyone see why I am getting the null pointer exception and what action could I take to fix it. Thankyou to anyone who has read this.

    Figure out what's null.
    Print out cards and then cards[randomNo].
    If those aren't null, then you need to look more closely at the erorr message and put in print statements to find out what is.
    Whatever turns out to be null, you'll need to trace back and figure out why.
    If it's the array, and the array is a member variable, then you need to know that reference member variables are initilaized to null.
    If the array isn't null (because you did cards = new Card[something]) but cards[randomNo] is null, then it's because you didn't do this: for (int ix = 0; ix < cards.length; ix++) {
        cards[ix] = new Card(...);
    }

  • Dump at if condition statement. Null pointer Exception

    hi all,
    I have a recursive node as a child node for a value node. I have created an instance of the value node.
    I also have accessed current elem of this value node. Since every elem of this value node will have recursive node also in it, I want to access the recursive node present in the elem.
    I want to do this using general node and element API - ie IWDNode and IWDNodeElement.
    No specific node name can be used coz this  is done for a generic method which takes a value node a as parameter and tries to create child elems for the node accessing the recursive node present in it.
    How can this be done ?
    I am using the following code.
    String ChildName = SourceNode.getNodeInfo().getName().split("_")[1] + "Rec";
    IWDNode childNode = SourceNode.getChildNode(ChildName, 0);
    if (childNode == null || childNode.size() == 0 ) {
    It throws a dump at if condition statement. ( Null pointer Exception)
    Any help appreciated !!
    Edited by: ymb on Mar 25, 2009 1:23 PM

    Hi,
    Its actually pity simple. If you will read the Javadocs you will find that there are various ways in which you can get the list of all chil nodes of a parent node.
    You just have to iterate over the chil nodes and get the names of the node.
    Please check this link for JAVA docs: http://help.sap.com/javadocs/nwce/current/wdr/index.html
    However for your requirement there can be following ways to get the list of the chil nodes. Please check these two code snippets:
        IWDNode node = wdContext.nodeNode1();
        Iterator itr = node.getNodeInfo().iterateChildren();
        String nodeName = null;
        String parentName = null;
        while(itr.hasNext()){
             nodeName = ((IWDNode)itr.next()).getNodeInfo().getName();
             parentName = ((IWDNode)itr.next()).getNodeInfo().getParent().getName();
             wdThis.wdGetAPI().getComponent().getMessageManager().reportSuccess("Node Name is: "
    + nodeName +"and it is under the parent Node named: " +parentName);
    Also there is another approach to do teh same, please have a look to this code snippet:
    List list = node.getNodeInfo().getChildren();
    String nodeName = null;
    String parentName = null;
    Iterator itr1 = list.iterator();
    while (itr1.hasNext()) {
         nodeName = ((IWDNode) itr1.next()).getNodeInfo().getName();;
         parentName = ((IWDNode)itr1.next()).getNodeInfo().getParent().getName();
         wdThis.wdGetAPI().getComponent().getMessageManager().reportSuccess("Node Name is: "
    + nodeName +"and it is under the parent Node named: " +parentName);
    I am sure this will all your issues and also you will not get the null pointer exception which was your initial issue.
    Please revert back in case you have any further issues.
    Thanks and Regards,
    Pravesh

  • Adding a new UDF throws a null pointer exception and modifying user.xml

    Hello,
    I have a two part question.
    i. I am trying to add a UDF (using Advanced>User Configuration..Attributes) to a fully configured OIM i.e. oim with reconciliation and provisioning from and to resources but it throws a null pointer exception. Look at the log, I see
    ===============Excerpt form the log file==========
    [2012-01-26T11:28:14.447-05:00] [oim_server1] [NOTIFICATION] [] [oracle.iam.platform.authz.impl] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JKQq8vZ8dpC5nFk3yZ1Evvpt000LzY,0] [APP: oim#11.1.1.3.0] [dcid: c62f3a4b80d21e6f:ef93519:134587d39c4:-7ffd-0000000000022a3e] [[
    ---Stack Trace Begins[[This is not an exception. For debugging purposes]]---
    oracle.iam.platform.authz.impl.OESAuthzServiceImpl.doCheckAccess(OESAuthzServiceImpl.java:210)
    oracle.iam.platform.authz.impl.OESAuthzServiceImpl.hasAccess(OESAuthzServiceImpl.java:188)
    oracle.iam.platform.authz.impl.OESAuthzServiceImpl.hasAccess(OESAuthzServiceImpl.java:180)
    oracle.iam.platform.authz.impl.AuthorizationServiceImpl.hasAccess(AuthorizationServiceImpl.java:173)
    oracle.iam.configservice.impl.ConfigManagerImpl.checkAuthorization(ConfigManagerImpl.java:1899)
    oracle.iam.configservice.impl.ConfigManagerImpl.addAttribute(ConfigManagerImpl.java:177)
    oracle.iam.configservice.api.ConfigManagerEJB.addAttributex(Unknown Source)
    ... 21 lines skipped..
    oracle.iam.configservice.api.ConfigManager_5u0nrx_ConfigManagerRemoteImpl.addAttributex(ConfigManager_5u0nrx_ConfigManagerRemoteImpl.java:864)
    ... 13 lines skipped..
    oracle.iam.configservice.api.ConfigManagerDelegate.addAttribute(Unknown Source)
    oracle.iam.configservice.agentry.config.CreateAttributeActor.perform(CreateAttributeActor.java:266)
    oracle.iam.consoles.faces.mvc.canonic.Model.perform(Model.java:547)
    oracle.iam.consoles.faces.mvc.admin.Model.perform(Model.java:324)
    oracle.iam.consoles.faces.mvc.canonic.Controller.doPerform(Controller.java:255)
    oracle.iam.consoles.faces.mvc.canonic.Controller.doSelectAction(Controller.java:178)
    oracle.iam.consoles.faces.event.NavigationListener.processAction(NavigationListener.java:97)
    ... 24 lines skipped..
    oracle.iam.platform.auth.web.PwdMgmtNavigationFilter.doFilter(PwdMgmtNavigationFilter.java:115)
    ... weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    oracle.iam.platform.auth.web.OIMAuthContextFilter.doFilter(OIMAuthContextFilter.java:100)
    ... 15 lines skipped..
    weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    ---Stack Tracefor this call Ends---
    [2012-01-26T11:28:14.447-05:00] [oim_server1] [NOTIFICATION] [IAM-1010010] [oracle.iam.platform.authz.impl] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JKQq8vZ8dpC5nFk3yZ1Evvpt000LzY,0] [APP: oim#11.1.1.3.0] [dcid: c62f3a4b80d21e6f:ef93519:134587d39c4:-7ffd-0000000000022a3e] [arg: 1] [arg: null] [arg: USER_MANAGEMENT_CONFIG] [arg: CREATE_ATTRIBUTE] ********** Entering the Authorization Segment with parameters:: LoggedInUserId = 1, target resourceID = null, Feature = USER_MANAGEMENT_CONFIG, Action = CREATE_ATTRIBUTE **********
    [2012-01-26T11:28:14.448-05:00] [oim_server1] [NOTIFICATION] [IAM-1010021] [oracle.iam.platform.authz.impl] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JKQq8vZ8dpC5nFk3yZ1Evvpt000LzY,0] [APP: oim#11.1.1.3.0] [dcid: c62f3a4b80d21e6f:ef93519:134587d39c4:-7ffd-0000000000022a3e] [arg: [InternalObligation: name: noop, values: [true], convertToObligation: false, InternalObligation: name: noop, values: [true], convertToObligation: false]] Validating the Internal Obligations: [InternalObligation: name: noop, values: [true], convertToObligation: false, InternalObligation: name: noop, values: [true], convertToObligation: false]
    [2012-01-26T11:28:14.448-05:00] [oim_server1] [NOTIFICATION] [IAM-1010022] [oracle.iam.platform.authz.impl] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JKQq8vZ8dpC5nFk3yZ1Evvpt000LzY,0] [APP: oim#11.1.1.3.0] [dcid: c62f3a4b80d21e6f:ef93519:134587d39c4:-7ffd-0000000000022a3e] ---------- The list of Internal Obligation is satisfied, returning TRUE ----------
    [2012-01-26T11:28:14.448-05:00] [oim_server1] [NOTIFICATION] [IAM-1010026] [oracle.iam.platform.authz.impl] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: xelsysadm] [ecid: 0000JKQq8vZ8dpC5nFk3yZ1Evvpt000LzY,0] [APP: oim#11.1.1.3.0] [dcid: c62f3a4b80d21e6f:ef93519:134587d39c4:-7ffd-0000000000022a3e] [arg: Decision :PERMIT\nObligations from policy: ] ********** Exiting the Authorization Segment with result Decision :PERMIT[[
    =============Excerpt ends==============
    Is there a reason why this is and how do I get by it.
    ii. Can I just add the field directly within the MDS>file/user.xml? Would there be an issue with changing an existing attribute metadata using the user.xml?

    Pradeep thank you for your response. it was helpful. However, I also found the responses to both my questions.
    i. The null pointer exception was due to using a complex query I was using in the LOV query. I tried a simple query and that worked fine.
    ii. For modifying the user defined attributes one can consult the following forum post:
    OIM 11g - Change UDF Field Type form String to LOV
    Thanks

  • Why am I receiving Null pointer Exception Error.

    why am I receiving Null pointer Exception Error.
    Hi I am developing a code for login screen. There is no syntex error as such ut I am receving the aove mentioned error. Can some one please help me ??
    ------------ Main.java------------------
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    public class Main implements ActionListener
    Frame mainf;
    MenuBar mb;
    MenuItem List,admitform,inquiry,exit,helpn;
    Menu newm,update,help;
    Inquiry iq;
    Admit ad;
    // HosHelp hp;
    Howuse hu;
    Register reg;
    Main()
    mainf=new Frame(" Engg College V/S Mumbai University ");
         mb=new MenuBar();
         newm=new Menu(" New ");
         update=new Menu(" Update ");
         help=new Menu(" Help ");
         List=new MenuItem("List");
         admitform=new MenuItem("Admit");
         inquiry=new MenuItem("Inquiry");
         exit=new MenuItem("Exit");
         helpn=new MenuItem("How to Use?");
    newm.add(List);
                   newm.add(admitform);
    newm.add(inquiry);
                   newm.add(exit);
         help.add(helpn);
              mb.add(newm);
              mb.add(update);
              mb.add(help);
    mainf.setMenuBar(mb);
                   exit.addActionListener(this);
                   List.addActionListener(this);
         inquiry.addActionListener(this);
         admitform.addActionListener(this);
    helpn.addActionListener(this);
         mainf.setSize(400,300);
         mainf.setVisible(true);
    public void actionPerformed(ActionEvent ae)
    if (ae.getSource()==List)
              reg=new Register();
         if(ae.getSource()==inquiry)
         iq=new Inquiry();
    if(ae.getSource()==admitform)
         ad=new Admit();
              if(ae.getSource()==helpn)
              hu=new Howuse();
              if(ae.getSource()==exit)
         mainf.setVisible(false);
    public static void main(String args[])
              new Main();
    -------------Register.java---------------------------
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    public class Register implements ActionListener//,ItemListener
    Label id,name,login,pass,repass;
    Button ok,newu,cancel,check;
    Button vok,iok,lok,mok,sok; //buttons for dialog boxes
    TextField idf,namef,loginf,passf,repassf;
    Dialog valid,invlog,less,mismat,acucreat;
    Frame regis;
    Checkbox admin,limit;
    CheckboxGroup type;
    DBconnect db;
    Register()
         db=new DBconnect();
    regis=new Frame("Registeration Form");
              type=new CheckboxGroup();
              admin=new Checkbox("Administrator",type,true);
              limit=new Checkbox("Limited",type,false);
              id=new Label("ID :");
    name=new Label("Name :");
         login=new Label("Login :");
         pass=new Label("Password :");
         repass=new Label("Retype :");
    idf =new TextField(20); idf.setEnabled(false);
         namef=new TextField(30); namef.setEnabled(false);
    loginf=new TextField(30); loginf.setEnabled(false);
         passf=new TextField(30); passf.setEnabled(false);
         repassf=new TextField(30); repassf.setEnabled(false);
    ok=new Button("OK"); ok.setEnabled(false);
         newu=new Button("NEW");
    cancel=new Button("Cancel");
         check=new Button("Check Login"); check.setEnabled(false);
    vok=new Button("OK");
         iok=new Button("OK");
              lok=new Button("OK");
              mok=new Button("OK");
              sok=new Button("OK");
    valid=new Dialog(regis,"Login name is valid !");
         invlog=new Dialog(regis,"Login name already exist!");
         less=new Dialog(regis,"Password is less than six characters !");
    mismat=new Dialog(regis,"password & retyped are not matching !");
    acucreat=new Dialog(regis,"You have registered successfully !");
         regis.setLayout(null);
    //     regis.setBackground(Color.orange);
    valid.setLayout(new FlowLayout());
         invlog.setLayout(new FlowLayout());
         less.setLayout(new FlowLayout());
         mismat.setLayout(new FlowLayout());
    acucreat.setLayout(new FlowLayout());
    id.setBounds(35,50,80,25); //(left,top,width,hight)
    idf.setBounds(125,50,40,25);
    name.setBounds(35,85,70,25);
    namef.setBounds(125,85,150,25);
    login.setBounds(35,120,80,25);
    loginf.setBounds(125,120,80,25);
    check.setBounds(215,120,85,25);
         pass.setBounds(35,155,80,25);
    passf.setBounds(125,155,80,25);
    repass.setBounds(35,190,80,25);
    repassf.setBounds(125,190,80,25);
    admin.setBounds(35,225,100,25);
    limit.setBounds(145,225,100,25);
              ok.setBounds(45,265,70,25);
         newu.setBounds(135,265,70,25);
    cancel.setBounds(225,265,70,25);
         passf.setEchoChar('*');
    repassf.setEchoChar('*');
         regis.add(id);
         regis.add(idf);
    regis.add(name);
         regis.add(namef);
         regis.add(login);
         regis.add(loginf);
         regis.add(check);
    regis.add(pass);
         regis.add(passf);
    regis.add(repass);
         regis.add(repassf);
         regis.add(ok);
         regis.add(newu);
         regis.add(cancel);
    regis.add(admin);
         regis.add(limit);
    valid.add(vok);
         invlog.add(iok);     
         less.add(lok);
         mismat.add(mok);
    acucreat.add(sok);
    ok.addActionListener(this);
         newu.addActionListener(this);
    check.addActionListener(this);
    cancel.addActionListener(this);
         // limit.addItemListener(this);
         //admin.addItemListener(this);
              vok.addActionListener(this);
              iok.addActionListener(this);
         lok.addActionListener(this);
         mok.addActionListener(this);
         sok.addActionListener(this);
    regis.setLocation(250,150);
    regis.setSize(310,300);
    regis.setVisible(true);
         public void actionPerformed(ActionEvent ae)
         if(ae.getSource()==check)
              try{
                   String s2=loginf.getText();
    ResultSet rs=db.s.executeQuery("select* from List");
                        while(rs.next())
                   if(s2.equals(rs.getString(2).trim()))
    //                    invlog.setBackground(Color.orange);
                             invlog.setLocation(250,150);
                             invlog.setSize(300,100);
                   cancel.setEnabled(false);
    ok.setEnabled(false);
    check.setEnabled(false);
                        invlog.setVisible(true);
                             break;
                        else
                        //     valid.setBackground(Color.orange);
                             valid.setLocation(250,150);
                             valid.setSize(300,100);
                   cancel.setEnabled(false);
    ok.setEnabled(false);
    check.setEnabled(false);
                   valid.setVisible(true);
                        }catch(Exception e)
                   e.printStackTrace();
    if(ae.getSource()==newu)
         try{
              ResultSet rs=db.s.executeQuery("select max(ID) from List");
         while(rs.next())
    String s1=rs.getString(1).trim();
                   int i=Integer.parseInt(s1);
    i++;
                   String s2=""+i;
    idf.setText(s2);
                   newu.setEnabled(false);
                   namef.setText(""); namef.setEnabled(true);
              loginf.setText(""); loginf.setEnabled(true);
              passf.setText(""); passf.setEnabled(true);
              repassf.setText(""); repassf.setEnabled(true);
              ok.setEnabled(true);
                   check.setEnabled(true);
                   }catch(Exception e)
              e.printStackTrace();
         if(ae.getSource()==ok)
              try
              String s1=idf.getText();
              String s2=loginf.getText();
              String s3=passf.getText();
         String s4=repassf.getText();
         int x=Integer.parseInt(s1);
         int t;
         if(type.getSelectedCheckbox()==admin)
              t=1;
              else
              t=0;
    ResultSet rs=db.s1.executeQuery("select* from List");
                   while(rs.next())
                   if(s2.equals(rs.getString(2).trim()))
                        invlog.setBackground(Color.orange);
                        invlog.setLocation(250,150);
                        invlog.setSize(300,100);
                   cancel.setEnabled(false);
    ok.setEnabled(false);
    check.setEnabled(false);
                        invlog.setVisible(true);
                        break;
                   else
                        if (s3.length()<6)
                        less.setBackground(Color.orange);
                             less.setLocation(250,150);
                             less.setSize(300,100);
                   ok.setEnabled(false);
                        cancel.setEnabled(false);
                        check.setEnabled(false);
                        less.setVisible(true);
    else if(!(s3.equals(s4)))
                        mismat.setBackground(Color.orange);
                        mismat.setLocation(250,150);
                        mismat.setSize(300,100);
                        ok.setEnabled(false);
                        cancel.setEnabled(false);
                        check.setEnabled(false);
                        mismat.setVisible(true);
                        else
    db.s1.execute("insert into User values("+x+",'"+s2+"','"+s3+"',"+t+")");
                        acucreat.setBackground(Color.orange);
                        acucreat.setLocation(250,150);
                        acucreat.setSize(300,100);
                        regis.setVisible(false);
                        acucreat.setVisible(true);
                   }//else
              }//while
                   } //try
              catch(Exception e1)
              // e1.printStackTrace();
              if (ae.getSource()==cancel)
              regis.setVisible(false);
              if (ae.getSource()==vok)
              ok.setEnabled(true);
                   cancel.setEnabled(true);
    check.setEnabled(true);
                   valid.setVisible(false);
              if (ae.getSource()==iok)
              ok.setEnabled(true);
                   cancel.setEnabled(true);
    check.setEnabled(true);
                   invlog.setVisible(false);
              if (ae.getSource()==lok)
              less.setVisible(false);
                   cancel.setEnabled(true);
    ok.setEnabled(true);
    check.setEnabled(true);
              if (ae.getSource()==mok)
              mismat.setVisible(false);
                   cancel.setEnabled(true);
    ok.setEnabled(true);
    check.setEnabled(true);
    if (ae.getSource()==sok)
              acucreat.setVisible(false);
              ok.setEnabled(false);
                   newu.setEnabled(true);
                   regis.setVisible(true);
         public static void main(String args[])
         new Register();
    -----------DBConnect.java------------------------------------
    import java.sql.*;
    public class DBconnect
    Statement s,s1;
    Connection c;
    public DBconnect()
    try
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              c=DriverManager.getConnection("jdbc:odbc:Sonal");
              s=c.createStatement();
    s1=c.createStatement();
         catch(Exception e)
         e.printStackTrace();
    ----------Login.java----------------
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.*;
    public class Login implements ActionListener
    Frame log;
    Label login,pass;
    TextField loginf,passf;
    Button ok,cancel;
    Dialog invalid;
    Button iok;
    Register reg;
    DBconnect db;
    Main m;
    Login()
    db=new DBconnect();
         log=new Frame();
         log.setLocation(250,210);
         login=new Label("Login :");
    pass=new Label("Password :");
         loginf=new TextField(20);
         passf=new TextField(20);
         passf.setEchoChar('*');
         ok=new Button("OK");
         // newu=new Button("New User");
         cancel=new Button("CANCEL");
         iok=new Button(" OK ");
    invalid=new Dialog(log,"Invalid User!");
    //log.setBackground(Color.cyan);
    //log.setForeground(Color.black);
         log.setLayout(null);
         // iok.setBackground(Color.gray);
         invalid.setLayout(new FlowLayout());
         login.setBounds(35,50,70,25); //(left,top,width,hight)
         loginf.setBounds(105,50,100,25);
         pass.setBounds(35,85,70,25);
         passf.setBounds(105,85,70,25);
         ok.setBounds(55,130,70,25);
    // newu.setBounds(85,120,80,25);
    cancel.setBounds(145,130,70,25);
    log.add(login);
    log.add(loginf);
    log.add(pass);
    log.add(passf);
    log.add(ok);
    // log.add(newu);
    log.add(cancel);
         invalid.add(iok);//,BorderLayout.CENTER);
    ok.addActionListener(this);
    // newu.addActionListener(this);
    cancel.addActionListener(this);
         iok.addActionListener(this);
    log.setSize(300,170);
    log.setVisible(true);
    public void actionPerformed(ActionEvent a)
    if(a.getSource()==ok)
         try{
              String l=loginf.getText();
              String p=passf.getText();
              ResultSet rs=db.s.executeQuery("select * from List");
              while(rs.next())
              if(l.equals(rs.getString(2).trim())&& p.equals(rs.getString(3).trim()))
                        String tp=rs.getString(4).trim();
                             int tp1=Integer.parseInt(tp);
    log.setVisible(false);
    if(tp1==1)
                             m=new Main();
                        // m.List.setEnabled(true);
                             else
                             m=new Main();
                             m.List.setEnabled(false);
                        break;
    else
                   invalid.setBackground(Color.orange);
                   invalid.setSize(300,100);
                   invalid.setLocation(250,210);
                   cancel.setEnabled(false);
              ok.setEnabled(false);
                   invalid.setVisible(true);
                   }catch(Exception e1)
                   e1.printStackTrace();
         if (a.getSource()==cancel)
         log.setVisible(false);
         if (a.getSource()==iok)
         invalid.setVisible(false);
         loginf.setText("");
         passf.setText("");
         cancel.setEnabled(true);
    ok.setEnabled(true);
         public static void main(String[] args)
         new Login();
    -------------inquiry.java---------------------------------
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.Date;
    import java.text.*;
    import java.sql.*;
    public class Inquiry implements ActionListener
    Frame inqry;
    Label name,addr;
    TextField namef,addrf;
    Button ok,cancel,dok;
    Dialog invalid;
    Frame result; //Result of the inquiry....
    Label lrname,lraddr,lward,lrdate,lcdate;
    TextField rname,raddr,ward,rdate,cdate;
    Date d;
    DateFormat df;
    Button rok,rcancel;
    Dialog success;
    Button rdok;
    DBconnect db;
    Inquiry()
              db=new DBconnect();
              inqry=new Frame("Inquiry Form");
              inqry.setLayout(null);
    inqry.setBackground(Color.cyan);
              name=new Label(" NAME ");
              addr=new Label("ADDRESS");
              namef=new TextField(20);
              addrf=new TextField(20);
              ok=new Button("OK");
              cancel=new Button("CANCEL");
              dok=new Button("OK");
              invalid=new Dialog(inqry,"Invalid Name or Address !");
              invalid.setSize(300,100);
         invalid.setLocation(300,180);
              invalid.setBackground(Color.orange);
              invalid.setLayout(new FlowLayout());
    result=new Frame(" INQUIRY RESULT "); //Result Window......
    result.setLayout(null);
    result.setBackground(Color.cyan);
    lcdate=new Label(" DATE ");
         lrname=new Label(" NAME ");
    lraddr=new Label(" ADDRESS ");
         lward=new Label(" WARD ");
         lrdate=new Label(" ADMIT-DATE ");
    cdate=new TextField(10);
         rname=new TextField(20);
    rname.setEnabled(false);
         raddr=new TextField(20);
         raddr.setEnabled(false);
         ward=new TextField(20);
         ward.setEnabled(false);
         rdate=new TextField(10);
         rdate.setEnabled(false);
         cdate=new TextField(20);
         d=new Date();
         df=DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.KOREA);
         cdate.setText(df.format(d));
         cdate.setEnabled(false);
    rok=new Button(" OK ");
         rcancel=new Button("CANCEL");
              name.setBounds(40,50,50,25);
    namef.setBounds(120,50,130,25);
    addr.setBounds(40,100,60,25);
    addrf.setBounds(120,100,80,25);
    ok.setBounds(60,145,70,25);
              cancel.setBounds(140,145,70,25);
              lcdate.setBounds(200,50,60,25); //Result Window......
    cdate.setBounds(270,50,80,25);      
    lrname.setBounds(35,85,70,25);
    rname.setBounds(140,85,180,25);
    lraddr.setBounds(35,120,80,25);
         raddr.setBounds(140,120,100,25);
    lward.setBounds(35,155,80,25);
    ward.setBounds(140,155,100,25);
    lrdate.setBounds(30,190,80,25);
    rdate.setBounds(140,190,80,25);
    rok.setBounds(70,240,70,25);
    rcancel.setBounds(170,240,70,25);
              inqry.add(name);
              inqry.add(namef);
              inqry.add(addr);
              inqry.add(addrf);
              inqry.add(ok);
              inqry.add(cancel);
    invalid.add(dok);
         result.add(lcdate); //Result Window......
         result.add(cdate);
              result.add(lrname);
              result.add(rname);
              result.add(lraddr);
              result.add(raddr);
              result.add(lward);
              result.add(ward);
              result.add(lrdate);
              result.add(rdate);
              result.add(rok);
              result.add(rcancel);
         ok.addActionListener(this);
         cancel.addActionListener(this);
         dok.addActionListener(this);
    rok.addActionListener(this); //Result Window......
         rcancel.addActionListener(this);
         inqry.setSize(280,180);
         inqry.setLocation(300,180);
         inqry.setVisible(true);
              result.setSize(400,280); //Result Window......
         result.setLocation(200,150);
         result.setVisible(false);
              public void actionPerformed(ActionEvent ae)
                   if(ae.getSource()==ok)
                   try
                             String nm=namef.getText();
                             String ad=addrf.getText();
                             inqry.setVisible(false);
                             ResultSet rs=db.s.executeQuery("select * from Billinformation");
                             while(rs.next())
                                  String nm1=rs.getString(2).trim();
                                  String ad1=rs.getString(3).trim();
                                  int k=0;
                                  if((nm1.equals(nm))&&(ad1.equals(ad)))
                             String adm=rs.getString(5).trim();
                             String wr=rs.getString(6).trim();
                             String bd=rs.getString(8).trim();
                                  String wrb=wr+"-"+bd;
    result.setVisible(true);
                                  rname.setText(nm1);
                             raddr.setText(ad1);
                             ward.setText(wrb);
                             rdate.setText(adm);
    k=1;
                                  break;
                                  }//if
                             else if(k==1)
                             invalid.setVisible(true);
                             }//while
    }//try
                             catch(Exception e)
                             e.printStackTrace();
                        } //getsource ==ok
                   if(ae.getSource()==cancel)
    inqry.setVisible(false);
                        if(ae.getSource()==rok) //Result Window......
                        namef.setText("");
                             addrf.setText("");
                             result.setVisible(false);
                        inqry.setVisible(true);
    if(ae.getSource()==rcancel)
    result.setVisible(false);
                        if(ae.getSource()==dok)
                        namef.setText("");
                             addrf.setText("");
                             invalid.setVisible(false);
                             inqry.setVisible(true);
         public static void main(String args[])
              new Inquiry();
    PLease Help me !!
    I need this urgently.

    can you explain what your program tries to do... and
    at where it went wrong..Sir,
    We are trying to make an project where we can make a person register in our data base & after which he/she can search for other user.
    The logged in user can modify his/her own data but can view other ppl's data.
    We are in a phase of registering the user & that's where we are stuck. The problem is that after the login screen when we hit register (OK- button) the data are not getting entered in the data base.
    Can u please help me??
    I am using "jdk1.3' - studnet's edition.
    I am waiting for your reply.
    Thanks in advance & yr interest.

  • Null Pointer Exception and Illegal Arguement when ran with Wireless Toolkit

    The following code throws a null pointer exception after it tried to initialize the textBox. I am not sure if there is something I am not importing, or if it's just because I'm sick and my head is cloudy. :-}.
    I am using Wireless Toolkit 2.2 and Java 5.0
    Anyhelp would be appreicated. Thank You.
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    public class TacticalTestMain extends MIDlet implements CommandListener {
         private Display display;
         private Form formMain;
         private TextBox tbHelp;          //Text Box for help Command
         private Command cmExit;          //A button to exit midLet
         private Command cmBack;          //Go "back" to main form
         private Command cmHelp;          //Ask for help
         public TacticalTestMain()
              display = Display.getDisplay(this);
              formMain = new Form("Tactical Survey Program");
              cmExit = new Command("Exit", Command.SCREEN, 1);
              cmBack = new Command("Back", Command.BACK, 1);
              cmHelp = new Command("Help", Command.HELP, 1);
              formMain.addCommand(cmExit);
              formMain.addCommand(cmBack);
              formMain.addCommand(cmHelp);
              formMain.setCommandListener(this);
              System.out.println("Before Create Text Box");
              //Create the help textBox with a max of 25 charecters
              tbHelp = new TextBox("HeLp", "You can press the back button", 25, 0);
              tbHelp.addCommand(cmBack);
              tbHelp.setCommandListener(this);
              System.out.println("AfTER Create Text Box");               
         }//end constructor
         public void startApp()
              System.out.println("Inside StartApp()");
              display.setCurrent(formMain);
         }//end startApp()
         public void pauseApp()
         }//end pauseApp
         public void destroyApp(boolean unconditional)
              notifyDestroyed();
         }//end destroyApp()
         //Check to see if the exit button was selected
         public void commandAction(Command c, Displayable d)
              System.out.println("Inside commandAction()");
              String sLabel = c.getLabel();
              if(sLabel.equals("Exit"))
                   destroyApp(true);
    Errors from the KToolbar:
    Running with storage root DefaultColorPhone
    Before Create Text Box
    Unable to create MIDlet TacticalTestMain
    java.lang.IllegalArgumentException
         at javax.microedition.lcdui.TextField.setChars(+105)
         at javax.microedition.lcdui.TextField.setString(+27)
         at javax.microedition.lcdui.TextField.<init>(+134)
         at javax.microedition.lcdui.TextBox.<init>(+74)
         at TacticalTestMain.<init>(+134)
         at java.lang.Class.runCustomCode(+0)
         at com.sun.midp.midlet.MIDletState.createMIDlet(+19)
         at com.sun.midp.midlet.Selector.run(+22)
    Execution completed.
    743701 bytecodes executed
    23 thread switches
    741 classes in the system (including system classes)
    4071 dynamic objects allocated (120440 bytes)
    2 garbage collections (91412 bytes collected)

    Hi zoya,
    Here is the problem:
    tbHelp = new TextBox("HeLp", "You can press the back button", 25, 0);
    This line declares a maximum textbox size of 25 but in reality he is declaring a textbox of size 29.
    Thats why it is throwing the illegal argument.
    happy coding :)

  • Null Pointer exception returned when object is not null!

    I've isolated the problem and cut down the code to the minimum. Why do I get a null pointer exception when the start method is called, when the object objJTextField is not null at this point???? I'm really stuck here, HELP!
    (two small java files, save as BasePage.java and ExtendedPage.java and then run ExtendedPage)
    first file
    ~~~~~~~
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public abstract class BasePage extends JFrame implements ActionListener
    private JPanel objJPanel = null;
    public BasePage()
    setSize(300,200);
    Container objContentPane = getContentPane();
    objJPanel = new JPanel();
    createObjects();
    createPage();
    // Add panels to content pane
    objContentPane.add(objJPanel);
    public void addComponentToPage(JComponent objJComponent)
    objJPanel.add(objJComponent);
    public void addButtonToPage(JButton objJButton)
    objJButton.addActionListener(this);
    objJPanel.add(objJButton);
    public void actionPerformed(ActionEvent objActionEvent)
    System.out.println("Action performed");
    userDefinedButtonClicked(objActionEvent.getActionCommand());
    // overide
    public abstract void createObjects();
    public abstract void createPage();
    public abstract void userDefinedButtonClicked(String sActionCommand);
    file 2
    ~~~~
    import javax.swing.*;
    public class ExtendedPage extends BasePage
    private JTextField objJTextField = null;
    private JButton objJButtonBrowse = null;
    public ExtendedPage()
    super();
    public void createObjects()
    objJTextField = new JTextField(20);
    objJButtonBrowse = new JButton("Start");
    objJButtonBrowse.setActionCommand("START");
    public void createPage()
    addComponentToPage(objJTextField);
    addButtonToPage(objJButtonBrowse);
    public void userDefinedButtonClicked(String sActionCommand)
    if ((sActionCommand != null) && (sActionCommand.equals("START")) )
    start();
    private void start()
    objJTextField.setText("Doesn't work");
    public static void main(String[] args)
    ExtendedPage objEP = new ExtendedPage();
    objEP.show();

    Hello ppaulf,
    Your problem is in your ExtendedPage.java file. You can fix this by changing the line
    private JTextField objJTextField = null;to:
    private JTextField objJTextField = new JTextField();This creates a proper instance.
    Good luck,
    Ming
    Developer Technical Support
    http://www.sun.com/developers/support

  • JRC (upg. to CR4E) - Report w Subreport - Oracle DB -  Null Pointer Excepti

    Hi
    We have a Crystal Designer/Developer Version 11.5.10.1263. We develop reports using this.
    Most of the reports have SQL Command mode design with JNDI/JDBC connection. It gets deployed with our Web application. And during runtime, when users access these reports from our web application, we typically use Java Reporting Component with Crystal Report Viewer SDK to open and display the report to the user.
    Besides other issues, current problem I am having is:
    I have a sub-report in my report. I am connecting to Oracle database. If this sub-report does not return any rows, I was getting a Null Pointer Exception. This seems to be a known bug. This happened to us when we had just the above mentioned components.
    We recently upgraded just the JAR libraries to the ones packaged in CR4E (Crystal Reports For Eclipse) - initially to get more exporting capability.This upgrade gets us past the Null Pointer Exception issue.
    Now, I am getting an error like "Unexpected database connector error". Please see the exception stack trace below if needed. Since we are a product and this display is specific to one out of about 100 different clients; with all the time we spent on making this report stuff work against this oracle DB client, we had finally ended up creating the display in JSP into our general product just for one of about 100 clients. Client must be the Lucky one...As a developer, I felt really frustrated.
    One note:- SQL Server DB works perfect.
    Other thing - Do we need to change any API calls after upgrading the JARS from standard JRC/Viewer to CR4E package?
    11:46:57,540 INFO  [STDOUT] 11:46:57,540 ERROR [JRCCommunicationAdapter]  detected an exception: Unexpected database connector error
         at com.crystaldecisions.reports.datafoundation.DFQuery.for(SourceFile:632)
         at com.crystaldecisions.reports.datalayer.a.do(SourceFile:1621)
         at com.crystaldecisions.reports.datalayer.a.a(SourceFile:1404)
         at com.crystaldecisions.reports.dataengine.m.b(SourceFile:334)
         at com.crystaldecisions.reports.dataengine.j.b(SourceFile:515)
         at com.crystaldecisions.reports.dataengine.m.o(SourceFile:408)
         at com.crystaldecisions.reports.dataengine.m.a(SourceFile:173)
         at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:114)
         at com.crystaldecisions.reports.dataengine.ContextNode.a(SourceFile:95)
         at com.crystaldecisions.reports.dataengine.j.case(SourceFile:1080)
         at com.crystaldecisions.reports.dataengine.h.<init>(SourceFile:108)
         at com.crystaldecisions.reports.dataengine.DataContext.a(SourceFile:254)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4660)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:4574)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.new(SourceFile:2652)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.byte(SourceFile:2610)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.try(SourceFile:2282)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.int(SourceFile:2442)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.I(SourceFile:1013)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.if(SourceFile:4816)
         at com.crystaldecisions.reports.dataengine.DataProcessor2.a(SourceFile:2020)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.a(SourceFile:309)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.a(SourceFile:250)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.u.a(SourceFile:922)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.u.e(SourceFile:784)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.u.for(SourceFile:242)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.aa.a(SourceFile:64)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.a(SourceFile:243)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ObjectFormatter.a(SourceFile:210)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.v.a(SourceFile:185)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.v.a(SourceFile:230)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.for(SourceFile:359)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.for(SourceFile:133)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ColumnFormatter.for(SourceFile:120)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.aa.a(SourceFile:64)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.a(SourceFile:511)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.a(SourceFile:452)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.a(SourceFile:369)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ah.a(SourceFile:72)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ReportColumnFormatter.a(SourceFile:86)
         at com.crystaldecisions.reports.formatter.formatter.paginator.SinglePageFormatter.a(SourceFile:332)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.for(SourceFile:359)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ai.for(SourceFile:133)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.ColumnFormatter.for(SourceFile:120)
         at com.crystaldecisions.reports.formatter.formatter.paginator.SinglePageFormatter.for(SourceFile:177)
         at com.crystaldecisions.reports.formatter.formatter.objectformatter.aa.a(SourceFile:64)
         at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.do(SourceFile:737)
         at com.crystaldecisions.reports.formatter.formatter.paginator.PageFormatter.formatPage(SourceFile:236)
         at com.businessobjects.reports.sdk.requesthandler.ReportViewingRequestHandler.byte(SourceFile:219)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1909)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
         at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(SourceFile:102)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(SourceFile:525)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(SourceFile:424)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(SourceFile:352)
         at com.businessobjects.sdk.erom.jrc.a.a(SourceFile:54)
         at com.businessobjects.sdk.erom.jrc.a.execute(SourceFile:67)
         at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(SourceFile:716)
         at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(SourceFile:125)
         at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(SourceFile:537)
         at com.crystaldecisions.sdk.occa.report.application.ds.a(SourceFile:186)
         at com.crystaldecisions.sdk.occa.report.application.ReportSource.a(SourceFile:1558)
         at com.crystaldecisions.sdk.occa.report.application.ReportSource.getPage(SourceFile:767)
         at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.getPage(SourceFile:324)
         at com.crystaldecisions.reports.reportengineinterface.JPEReportSource.getPage(SourceFile:149)
         at com.businessobjects.report.web.event.s.a(SourceFile:158)
         at com.businessobjects.report.web.event.s.a(SourceFile:127)
         at com.businessobjects.report.web.event.bt.a(SourceFile:47)
         at com.businessobjects.report.web.event.bw.broadcast(SourceFile:93)
         at com.businessobjects.report.web.event.am.a(SourceFile:53)
         at com.businessobjects.report.web.a.t.if(SourceFile:2104)
         at com.businessobjects.report.web.e.a(SourceFile:300)
         at com.businessobjects.report.web.e.a(SourceFile:202)
         at com.businessobjects.report.web.e.a(SourceFile:135)
         at com.crystaldecisions.report.web.ServerControl.a(SourceFile:607)
         at com.crystaldecisions.report.web.ServerControl.processHttpRequest(SourceFile:342)
         at org.apache.jsp.ipalHistoryReportViewer_jsp._jspService(org.apache.jsp.ipalHistoryReportViewer_jsp:201)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
         at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
         at org.apache.catalina.core.Standar
    11:46:57,540 INFO  [STDOUT] dEngineValve.invoke(StandardEngineValve.java:107)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
         at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
         at java.lang.Thread.run(Thread.java:595)
    11:46:57,634 INFO  [STDOUT]  CustomReports - finally Calling CrystalReportViewer dispose ...

    I have exactly the same problem. Had posted it on the forum last week, but haven't received any response yet. I just file a single support case ($195) with SAP.  If I hear anything useful back, will keep you posted. Please let me know if you are able to resolve the problem.
    In my case, I can get my report to work with a single subreport.  When I put multiple subreports, I get the same error as you are currently getting.
    Check if your report has any special section formatting (conditional suppression etc).  Try to remove those to see if it helps at all.

Maybe you are looking for