NullPointerException: component argument pData

I keep getting this error message.
I am creating a screenManager, which sets a fullscreen displaymode based on the
available and compatible displaymodes on the system, and restores the original
displaymode upon exit. This is some new territory for me, and I have no idea where
and why this error appears. I'll post code if none can instantly tell what makes this
nullpointer exception appear.
Thanks,
Terje
java.lang.NullPointerException: component argument pData
at sun.awt.windows.Win32BackBufferSurfaceData.initSurface(Native Method)
at sun.awt.windows.Win32BackBufferSurfaceData.createData(Win32BackBuffer
SurfaceData.java:49)
at sun.awt.windows.Win32BackBuffer.createHWData(Win32BackBuffer.java:28)
at sun.awt.windows.WVolatileImage.initAcceleratedBackground(WVolatileIma
ge.java:100)
at sun.awt.windows.Win32BackBuffer.displayChanged(Win32BackBuffer.java:3
5)
at sun.awt.SunDisplayChanger.notifyListeners(SunDisplayChanger.java:102)
at sun.awt.Win32GraphicsEnvironment.displayChanged(Win32GraphicsEnvironm
ent.java:98)
at sun.awt.windows.WToolkit$4.run(WToolkit.java:734)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Press any key to continue . . .

Well, I understand that much... The funny thing is the trace seems to be outside my code, and after running the application some more times, I occationally end up with the following message:
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x2E57E76
Function=Java_sun_print_Win32PrintJob_endPrintRawData+0x1D42
Library=E:\j2sdk_nb\j2sdk1.4.2\jre\bin\awt.dll
followed by a list of all dynamic link libraries running.
This log is additionally written to a file.
Here is the code:
import java.awt.*;
import java.awt.image.*;
import javax.swing.JFrame;
public class MonsunScreenManager
     private GraphicsDevice gDevice = null;
     /** change this if you want a different bufferstrategy **/
     private static final int NUM_DISPLAY_BUFFERS = 2;
     private static MonsunScreenManager screenManager = new MonsunScreenManager();
     private MonsunScreenManager()
          GraphicsEnvironment env =
               GraphicsEnvironment.getLocalGraphicsEnvironment();
          gDevice = env.getDefaultScreenDevice();
     public static MonsunScreenManager getScreenManager()
          return screenManager;
     /** get compatible displaymodes of system **/
     public DisplayMode[] getCompatibleDisplayModes()
          return gDevice.getDisplayModes();
     /** get first compatible mode, or null if none are **/
     public DisplayMode getFirstCompatibleMode( DisplayMode modes[] )
          DisplayMode goodModes[] = gDevice.getDisplayModes();
          for(int i=0;i<modes.length;i++)
               for(int j=0;j<goodModes.length;j++)
                    if(displayModesMatch(modes,goodModes[j]))
                         return modes[i];
          return null;
     /** get current display mode **/
     public DisplayMode getCurrentDisplayMode()
          return gDevice.getDisplayMode();
     /* check if 2 display modes match. (same resolution, bit depth, and refresh
     * rate). if refresh rate is unknown, only the other two have to match. if bit
     * depth is multi, only the other two have to match.
     public boolean displayModesMatch( DisplayMode mode1, DisplayMode mode2 )
          if(     mode1.getWidth()      != mode2.getWidth()     ||
               mode1.getHeight()     != mode2.getHeight())
               return false;
          if(     mode1.getBitDepth()     !=     DisplayMode.BIT_DEPTH_MULTI     &&
               mode2.getBitDepth()     !=     DisplayMode.BIT_DEPTH_MULTI     &&
               mode1.getBitDepth()     !=     mode2.getBitDepth())
               return false;
          if(     mode1.getRefreshRate()     !=     DisplayMode.REFRESH_RATE_UNKNOWN     &&
               mode2.getRefreshRate()     !=     DisplayMode.REFRESH_RATE_UNKNOWN     &&
               mode1.getRefreshRate()     !=     mode2.getRefreshRate())
               return false;
          return true;
     /** changes to fullscreen mode. **/
     public void setFullScreen(DisplayMode displayMode)
          JFrame myDisplay = new JFrame();
          myDisplay.setUndecorated(true);
          myDisplay.setIgnoreRepaint(true);
          myDisplay.setResizable(false);
          gDevice.setFullScreenWindow(myDisplay);
          if(displayMode!=null && gDevice.isDisplayChangeSupported())
               try
                    gDevice.setDisplayMode(displayMode);
               catch(IllegalArgumentException e)
                    System.out.println("Boo?");
          myDisplay.createBufferStrategy(NUM_DISPLAY_BUFFERS);
     /** get the graphical context for the display **/
     public Graphics2D getGraphics()
          Window myWindow = gDevice.getFullScreenWindow();
          if(myWindow!=null)
               BufferStrategy bufferStrat = myWindow.getBufferStrategy();
               return (Graphics2D)bufferStrat.getDrawGraphics();
          return null;
     /** updates the display **/
     public void updateScreen()
          Window myWindow = gDevice.getFullScreenWindow();
          if(myWindow!=null)
               BufferStrategy bufferStrat = myWindow.getBufferStrategy();
               if(bufferStrat.contentsLost())
                    bufferStrat.show();
          // sync display! should be an "option", since it takes time??
          Toolkit.getDefaultToolkit().sync();
     /** returns the window used in fullscreen, or null if not in fullscreen! **/
     public Window getFullScreenWindow()
          return gDevice.getFullScreenWindow();
     /** returns width of window, or 0 if not in fullscreen mode **/
     public int getWidth()
          Window myWindow = getFullScreenWindow();
          if(myWindow!=null)
               return myWindow.getWidth();
          return 0;
     /** returns height of window, or 0 if not in fullscreen mode **/
     public int getHeight()
          Window myWindow = getFullScreenWindow();
          if(myWindow!=null)
               return myWindow.getHeight();
          return 0;
     /** restores the screen's display mode **/
     public void restoreScreen()
          Window myWindow = getFullScreenWindow();
          if(myWindow!=null)
               myWindow.dispose();
          gDevice.setFullScreenWindow(null);
     /** creates an image compatible with the current displaymode **/
     public BufferedImage createCompatibleImage(int dWidth,int dHeight, int dTrans)
          Window myWindow = getFullScreenWindow();
          if(myWindow!=null)
               GraphicsConfiguration gC = myWindow.getGraphicsConfiguration();
               return gC.createCompatibleImage(dWidth,dHeight,dTrans);
          return null;

Similar Messages

  • Cfinvoke component argument question

    cfnewbie here...
    I want to invoke a method in a CFC file - I am not clear from
    the docs. how to construct the component argument. If using the
    filepath structure below, for example, where am I supposed to
    start? what should "directory" be? the root folder of the server?
    <cfinvoke
    component="directory.subdirectory.subdirectory2.cfc_filename"
    method="method_name"
    returnvariable="whatever">
    </cfinvoke>
    Thanks!

    Thanks Ted. I am looking at the " Registered CFX Tags" area
    in CFAdmin MX6.1 and I do not see it, should it be there?
    Again thanks for answering such dumb questions... the person
    who supported CF is no longer with our company so I'm stuck with
    it.

  • Please explain the error message

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component
    argument pData
    at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
    at sun.awt.windows.Win32SurfaceData.<init>(Win32SurfaceData.java:448)
    at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316
    at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.jav
    a:357)
    at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java
    :332)
    at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java
    :313)
    at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:353)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Briefly, your program has a bug.
    More specifically, it appears that the Abstract Window Toolkit, in trying to respond to an event, encountered a pointer that was set to null, rather than pointing at some data. You probably failed to initialize the pointer when setting up whatever you were trying to use the AWT for.
    Posting your code (inside code tags) may help someone here help you find the bug.

  • JApplet Error when closing

    import java.awt.*;
    import java.applet.*;
    import javax.swing.*;
    <applet code="Frame_Demo" width=300 height=300>
    </applet>
    public class Frame_Demo extends JApplet {
         public void init()
              Container c = this.getContentPane();
              ImageIcon i=new ImageIcon("D:/Soft/1.jpg");
              JLabel j=new JLabel(i);
              c.add(j);               
    }it runs perfectly but when close it will generate Exception
    Like :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
    Why ?
    And if we use the Applet then it will not generate Exception..
    Edited by: hemen on Feb 20, 2008 11:11 AM

    Hello Lisa,
    I have came across this issue before. I suggest that a messaged be logged with the SAP Support Team. They may need to get a copy of the database to verify this.
    Regards,
    Lorna Real

  • Exception when closing an Applet window

    Hi,
    Every one.....
    I have added Swing components to the JApplet. Everything is fine with the program . But when i am closing the appletviewer window it is throwing the following exception :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
         at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
         at sun.awt.windows.Win32SurfaceData.<init>(Unknown Source)
         at sun.awt.windows.Win32SurfaceData.createData(Unknown Source)
         at sun.awt.Win32GraphicsConfig.createSurfaceData(Unknown Source)
         at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
         at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
         at sun.awt.windows.WComponentPeer$2.run(Unknown Source)
         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    So how to resolve this one, can anyone ?
    Bye

    I could be proven wrong, but I think you can use hide() and show() for your windows. You could make a windowListener that when a user tries to close the window you would have it hide that window instead, and show the underlying window:
    http://java.sun.com/docs/books/tutorial/uiswing/events/windowlistener.html
    You might also want to make the new window that pops up a modal dialog window.
    http://java.sun.com/products/jlf/ed2/book/HIG.Dialogs3.html
    Hope that helps.

  • Exception inspite of successful build

    i am running the following code it shows no exception if i dont click inside the applet
    but if i click it shows the following exception.
    what could be the possible reason for that
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
            at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
            at sun.awt.windows.Win32SurfaceData.<init>(Win32SurfaceData.java:448)
            at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316)
            at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.java:357)
            at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:332)
            at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:313)
            at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:353)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    BUILD SUCCESSFUL (total time: 4 seconds)My code is as follows
    import java.awt.BorderLayout;
    import javax.swing.JApplet;
    * @author sakshi
    public class MainJA extends JApplet {
        MyInterface in;
        MyJPanel jp1;
        MyJScrollPane jsp;
         * Initialization method that will be called after the applet is loaded
         * into the browser.
        @Override
        public void init() {
            makeGUI();
        // TODO start asynchronous download of heavy resources
        void makeGUI() {
            setLayout(new BorderLayout());
            jp1 = new MyJPanel();
            in = new MyInterface();
            jsp = new MyJScrollPane(jp1);
            add(jsp, BorderLayout.CENTER);
            add(in, BorderLayout.SOUTH);
        // TODO overwrite start(), stop() and destroy() methods
    import java.awt.FlowLayout;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    * @author sakshi
    public class MyInterface extends JPanel {
        JLabel l_x,l_y;
        JTextField t_x,t_y;
        public MyInterface() {
           l_x=new JLabel("x");
           l_y=new JLabel("y");
           t_x=new JTextField(10);
           t_y=new JTextField(10);
           setLayout(new FlowLayout((int) CENTER_ALIGNMENT));
           add(l_x);add(t_x);
           add(l_y);add(t_y);
    import java.awt.Dimension;
    import javax.swing.JPanel;
    * @author sakshi
    public class MyJPanel extends JPanel {
        public MyJPanel() {
            setPreferredSize(new Dimension(1000,1000));
    import java.awt.Component;
    import java.awt.Dimension;
    import javax.swing.JScrollPane;
    import javax.swing.ScrollPaneConstants;
    * @author sakshi
    public class MyJScrollPane extends JScrollPane {
        public MyJScrollPane(Component v) {
            super(v,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
            setPreferredSize(new Dimension(500,500));
    }

    thanks now there are no exceptions
    sir how can i call repaint when scrollbars are moved because the screen becomes distorted on moving it
    i have added paintComponent method in JPanel.
    package introswing;
    import java.awt.BorderLayout;
    import javax.swing.JApplet;
    * @author sakshi
    public class MainJA extends JApplet {
        MyInterface in;
        MyJPanel jp1;
        MyJScrollPane jsp;
         * Initialization method that will be called after the applet is loaded
         * into the browser.
        @Override
        public void init() {
            makeGUI();
        // TODO start asynchronous download of heavy resources
        void makeGUI() {
            setLayout(new BorderLayout());
            in = new MyInterface();
             jp1 = new MyJPanel(in);
            jsp = new MyJScrollPane(jp1);
            add(jsp, BorderLayout.CENTER);
            add(in, BorderLayout.SOUTH);
        // TODO overwrite start(), stop() and destroy() methods
    package introswing;
    import java.awt.FlowLayout;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    * @author sakshi
    public class MyInterface extends JPanel {
        JLabel l_x,l_y;
        JTextField t_x,t_y;
        public MyInterface() {
           l_x=new JLabel("x");
           l_y=new JLabel("y");
           t_x=new JTextField(10);
           t_y=new JTextField(10);
           setLayout(new FlowLayout(FlowLayout.CENTER));
           add(l_x);add(t_x);
           add(l_y);add(t_y);
        void setText(int x,int y)
            t_x.setText(String.valueOf(x));  t_y.setText(String.valueOf(y));
         //   System.out.println("setting text");
    package introswing;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import javax.swing.JPanel;
    * @author sakshi
    public class MyJPanel extends JPanel implements MouseMotionListener {
        MyInterface i;
        public MyJPanel(MyInterface in) {
            i=in;
            setPreferredSize(new Dimension(1000,1000));
            addMouseMotionListener(this);
        public void mouseDragged(MouseEvent e) {
          //  throw new UnsupportedOperationException("Not supported yet.");
        public void mouseMoved(MouseEvent e) {
            i.setText(e.getX(), e.getY());
             System.out.println("setting text");
           // throw new UnsupportedOperationException("Not supported yet.");
        public void paintComponent(Graphics g)
            g.drawLine(12,23,66,87);
    package introswing;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.event.AdjustmentEvent;
    import java.awt.event.AdjustmentListener;
    import javax.swing.JScrollPane;
    import javax.swing.ScrollPaneConstants;
    * @author sakshi
    public class MyJScrollPane extends JScrollPane implements AdjustmentListener {
        Component js;
        public MyJScrollPane(Component v) {
            super(v,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
            setPreferredSize(new Dimension(500,500));
            js=v;
        public void adjustmentValueChanged(AdjustmentEvent e) {
            js.repaint();
            //throw new UnsupportedOperationException("Not supported yet.");
        /*public void paintComponent(Graphics g)
            g.drawLine(12,23,66,87);
    }i tried it once using the adjustment listener interface

  • Disposing a Fullscreen Frame with BackBuffers throws Exception

    I am using the new JDK1.4.1_01, when i create a Frame and switch the Frame to Fullscreen and call this function to destroy the frame a Exception is thrown
    java.lang.NullPointerException: component argument pData
         at sun.awt.windows.Win32BackBufferSurfaceData.initSurface(Native Method)
         at sun.awt.windows.Win32BackBufferSurfaceData.createData(Win32BackBufferSurfaceData.java:48)
         at sun.awt.windows.Win32BackBuffer.createHWData(Win32BackBuffer.java:28)
         at sun.awt.windows.WVolatileImage.initAcceleratedBackground(WVolatileImage.java:99)
         at sun.awt.windows.Win32BackBuffer.displayChanged(Win32BackBuffer.java:35)
         at sun.awt.SunDisplayChanger.notifyListeners(SunDisplayChanger.java:102)
         at sun.awt.Win32GraphicsEnvironment.displayChanged(Win32GraphicsEnvironment.java:98)
         at sun.awt.windows.WToolkit$4.run(WToolkit.java:723)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
    private void destroyWindow()
    if ( null != itsOldMode )
    gd.setDisplayMode(itsOldMode);
    itsOldMode = null;
    if ( null != gd.getFullScreenWindow() )
    gd.setFullScreenWindow(null);
    itsBufferStrategy = null;
    itsBufferCapabilities = null;
    itsFlipContents = null;
    setVisible(false);
    dispose(); // <-- the exception is thrown here
    I use BackBuffers and when i use no Backbuffer, exception is not thrown, so i think it must the backbuffer, a bug ? my fault ?
    can u help me

    itsOldMode contains the mode before switching to fullscreen and changing display, docs says restore old display mode before leaving fullscreen ( u will find in the the sun java examples )
    itsOldMode = gd.getDisplayMode();
    gd.setFullScreenWindow(this);
    if ( gd.isDisplayChangeSupported() )
    gd.setDisplayMode(new DisplayMode(itsWidth, itsHeight, itsBitDepth, DisplayMode.REFRESH_RATE_UNKNOWN));
    createBackBuffers();
    enableRendering(true);

  • Varying size of JScrollPane

    Hi.
    I hope you can help me figure out what's going on. I have a component that I've written that should display buttons vertically (it's a basis for an OutlookBar styled component).
    The component is based on a JPanel that is put in a JScrollPane and the buttons are added to the JPanel. The JPanel has a VerticalFlowLayout (a custom layout class).
    Now for the problem: Every time I adjust the size of the component so that a scroll bar should appear, the getPreferredSize() method of the JScrollPane returns a width that is lesser than it returns when the scroll bar is not visible! The weird thing is that the difference in the width is exactly the width of the scroll bar... but it doesn't make much sense since the width that is returned when the scroll bar is visible is less than the width that is returned when the scroll bar is not visible (it would make sense to have it the other way around!).
    Since my component needs to keep a consistent width this behavior is extremely annoying! Below you can find the code for the panel (and the needed layout) if you'd like to try this out, any help will be greatly appreciated:
    import javax.swing.*;
    import javax.swing.plaf.ComponentUI;
    import java.awt.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    * A panel that contains a set of operations that are displayed under a common
    * category name on a <code>OutlookBar</code>.
    * @version Revision:$ Date:$
    public class OutlookBarCategoryPanel extends JPanel
        protected JPanel m_contentPanel = new JPanel( new VerticalFlowLayout( 5 ) );
        private JScrollPane m_contentScrollPane = new JScrollPane( m_contentPanel,
                                                        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                                        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
         * Constructs a new <tt>OutlookBarCategoryPanel</tt> that is initially empty.
        public OutlookBarCategoryPanel()
            super( new BorderLayout() );
            m_contentPanel.setBackground( SystemColor.control );
            super.add( m_contentScrollPane, BorderLayout.CENTER );
         * If the <code>preferredSize</code> has been set to a
         * non-<code>null</code> value just returns it.
         * If the UI delegate's <code>getPreferredSize</code>
         * method returns a non <code>null</code> value then return that;
         * otherwise defer to the component's layout manager.
         * @return the value of the <code>preferredSize</code> property
         * @see #setPreferredSize
         * @see ComponentUI
        public Dimension getPreferredSize()
            Dimension size = super.getPreferredSize();
            if( size.width < m_contentScrollPane.getPreferredSize().width )
                size.width = m_contentScrollPane.getPreferredSize().width;
            return size;
         * Appends the specified component to the end of this container.
         * This is a convenience method for {@link #addImpl}.
         * <p>
         * Note: If a component has been added to a container that
         * has been displayed, <code>validate</code> must be
         * called on that container to display the new component.
         * If multiple components are being added, you can improve
         * efficiency by calling <code>validate</code> only once,
         * after all the components have been added.
         * @param     comp   the component to be added
         * @see #addImpl
         * @see #validate
         * @see #revalidate
         * @return    the component argument
        public Component add( Component comp )
            return m_contentPanel.add( comp );
         * Adds the specified component to the end of this container.
         * Also notifies the layout manager to add the component to
         * this container's layout using the specified constraints object.
         * This is a convenience method for {@link #addImpl}.
         * <p>
         * Note: If a component has been added to a container that
         * has been displayed, <code>validate</code> must be
         * called on that container to display the new component.
         * If multiple components are being added, you can improve
         * efficiency by calling <code>validate</code> only once,
         * after all the components have been added.
         * @param     comp the component to be added
         * @param     constraints an object expressing
         *                  layout contraints for this component
         * @see #addImpl
         * @see #validate
         * @see #revalidate
         * @see       LayoutManager
         * @since     JDK1.1
        public void add( Component comp, Object constraints )
            m_contentPanel.add( comp );
         * Adds the specified component to this container with the specified
         * constraints at the specified index.  Also notifies the layout
         * manager to add the component to the this container's layout using
         * the specified constraints object.
         * This is a convenience method for {@link #addImpl}.
         * <p>
         * Note: If a component has been added to a container that
         * has been displayed, <code>validate</code> must be
         * called on that container to display the new component.
         * If multiple components are being added, you can improve
         * efficiency by calling <code>validate</code> only once,
         * after all the components have been added.
         * @param comp the component to be added
         * @param constraints an object expressing layout contraints for this
         * @param index the position in the container's list at which to insert
         * the component; <code>-1</code> means insert at the end
         * component
         * @see #addImpl
         * @see #validate
         * @see #revalidate
         * @see #remove
         * @see LayoutManager
        public void add( Component comp, Object constraints, int index )
            m_contentPanel.add( comp, index );
         * Adds the specified component to this container at the given
         * position.
         * This is a convenience method for {@link #addImpl}.
         * <p>
         * Note: If a component has been added to a container that
         * has been displayed, <code>validate</code> must be
         * called on that container to display the new component.
         * If multiple components are being added, you can improve
         * efficiency by calling <code>validate</code> only once,
         * after all the components have been added.
         * @param     comp   the component to be added
         * @param     index    the position at which to insert the component,
         *                   or <code>-1</code> to append the component to the end
         * @return    the component <code>comp</code>
         * @see #addImpl
         * @see #remove
         * @see #validate
         * @see #revalidate
        public Component add( Component comp, int index )
            return m_contentPanel.add( comp, index );
         * Adds the specified component to this container.
         * This is a convenience method for {@link #addImpl}.
         * <p>
         * This method is obsolete as of 1.1.  Please use the
         * method <code>add(Component, Object)</code> instead.
         * @see add(Component, Object)
        public Component add( String name, Component comp )
            return m_contentPanel.add( name, comp );
         * Removes the specified button from the panel.  The reference that is sent as
         * a parameter needs to point to the same instance as the button that should actually
         * be removed (in other words, this method will not perform an equal() comparison).
         * @param button    a reference to the button that should be removed.
        public void remove( OutlookBarOperationButton button )
            m_contentPanel.remove( button );
         * Removes all operations that have the specified caption.
         * @param caption   the caption of the operation(s) that should be removed.
        public void removeOperation( String caption )
            Component[] components = m_contentPanel.getComponents();
            for( int i=0; i<components.length; i++ )
                Component component = components;
    if( component != null && component instanceof AbstractButton )
    if( ((AbstractButton)component).getText().equals( caption ) )
    m_contentPanel.remove( i );
    public static void main( String[] args )
    JFrame frame = new JFrame( "OutlookBarCategorButton" );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.getContentPane().setLayout( new BorderLayout() );
    OutlookBarCategoryPanel obcp = new OutlookBarCategoryPanel();
    obcp.add( new OutlookBarOperationButton( "foo", new ImageIcon( "images/History24.gif" ) ) );
    obcp.add( new OutlookBarOperationButton( "bar", new ImageIcon( "images/Help24.gif" ) ) );
    obcp.add( new OutlookBarOperationButton( "foobar", new ImageIcon( "images/Cut24.gif" ) ) );
    obcp.add( new OutlookBarOperationButton( "index 2", new ImageIcon( "images/isl_faninn.png" ) ), 2 );
    frame.getContentPane().add( obcp, BorderLayout.WEST );
    frame.pack();
    frame.show();
    And here is the code for the VerticalFlowLayout class:
    import java.awt.*;
    * A layout manager that works like the default layout manager in swing
    * (FlowLayout) except that it arranges its components vertically instead
    * of horizontally.
    * @version $Revision: 1.1 $ $Date: 2003/03/11 13:37:38 $
    public class VerticalFlowLayout implements LayoutManager
        private int m_vgap;
         * Creates a new instance of the class with an initial vertical gap of 0
         * pixels.
        public VerticalFlowLayout()
            this( 0 );
         * Creates a new instance of the class with an initial vertical gap of
         * the specified number of pixels.
         * @param vgap  the number of pixels to use as a gap between
         *              components
        public VerticalFlowLayout( int vgap )
            m_vgap = vgap;
         * Lays out the container in the specified panel.
         * @param theParent the component which needs to be laid out
        public void layoutContainer( Container theParent )
            Insets insets = theParent.getInsets();
            int w = theParent.getSize().width - insets.left - insets.right;
            int numComponents = theParent.getComponentCount();
            if( numComponents == 0 )
                return;
            int y = insets.top;
            int x = insets.left;
            for( int i = 0; i < numComponents; ++i )
                Component c = theParent.getComponent(i);
                if( c.isVisible() )
                    Dimension d = c.getPreferredSize();
                    c.setBounds( x, y, w, d.height );
                    y += d.height + m_vgap;
         * Calculates the minimum size dimensions for the specified
         * panel given the components in the specified parent container.
         * @param theParent the component to be laid out
         * @see #preferredLayoutSize
        public Dimension minimumLayoutSize( Container theParent )
            Insets insets = theParent.getInsets();
            int maxWidth = 0;
            int totalHeight = 0;
            int numComponents = theParent.getComponentCount();
            for( int i = 0; i < numComponents; ++i )
                Component c = theParent.getComponent( i );
                if( c.isVisible() )
                    Dimension cd = c.getMinimumSize();
                    maxWidth = Math.max( maxWidth, cd.width );
                    totalHeight += cd.height;
            Dimension td = new Dimension( maxWidth + insets.left + insets.right,
                    totalHeight + insets.top + insets.bottom + m_vgap * numComponents );
            return td;
         * If the layout manager uses a per-component string,
         * adds the component <code>comp</code> to the layout,
         * associating it
         * with the string specified by <code>name</code>.
         * @param name the string to be associated with the component
         * @param comp the component to be added
        public void addLayoutComponent( String name, Component comp )
         * Removes the specified component from the layout.
         * @param comp the component to be removed
        public void removeLayoutComponent( Component comp )
         * Calculates the preferred size dimensions for the specified
         * panel given the components in the specified parent container.
         * @param theParent the component to be laid out
         * @see #minimumLayoutSize
        public Dimension preferredLayoutSize( Container theParent )
            Insets insets = theParent.getInsets();
            int maxWidth = 0;
            int totalHeight = 0;
            int numComponents = theParent.getComponentCount();
            for( int i = 0; i < numComponents; ++i )
                Component c = theParent.getComponent( i );
                if( c.isVisible() )
                    Dimension cd = c.getPreferredSize();
                    maxWidth = Math.max( maxWidth, cd.width );
                    totalHeight += cd.height;
            Dimension td = new Dimension( maxWidth + insets.left + insets.right,
                    totalHeight + insets.top + insets.bottom + m_vgap * numComponents );
            return td;

    You can use calligraphy/ art brush strokes, can you not? Some of them come with AI and you can find quite a few on ze interweb. You could even create your own, if need be.
    Mylenium

  • ZfD 3.2 SP2 Abends JVM 1.3.1 on Netware 5.1 SP6e

    After applying SP2 patch to Netware 5.1 SP6(e), abend in JVM happens
    when
    starting ZfD3.2:
    FSERVER1:zfdstart
    Loading module NWSNUT.NLM
    This module is ALREADY loaded and cannot be loaded more than once.
    Loading module JAVA.NLM
    Novell JVM Version 1.3.1_06 Build 03031310
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Auto-loading module JSOCK.NLM
    Support For Java Sockets
    Version 1.31a March 13, 2003
    (C) Copyright 2000-2001 Novell, Inc. All Rights Reserved
    Loading module JSOCK5X.NLM
    NetWare 5.x Support For Java Sockets
    Version 1.31a March 13, 2003
    (C) Copyright 2000-2001 Novell, Inc. All Rights Reserved
    Loading module JVM.NLM
    Java jvm (based on 1.3)
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Java: Environment variable zenAWSClassPath, not found
    Java: Environment variable zenAWSClassPath, not found
    Loading module JAVA.NLM
    This module is ALREADY loaded and cannot be loaded more than once.
    Java: Environment variable zenAWSClassPath, not found
    Loading module VERIFY.NLM
    Java verify (based on 1.3)
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Loading module JVMLIB.NLM
    Java jvmlib (based on 1.3)
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Loading module DBSRV7.NLM
    Sybase Adaptive Server Anywhere 7.0.0.505
    Version 7.00 December 14, 2000
    Copyright 1989-2000 Sybase, Inc. All rights reserved. All
    unpublished
    rights
    reserved.
    Loading module ZIP.NLM
    Java zip (based on 1.3)
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Loading module IMGSERV.NLM
    ZENworks Imaging Server
    Version 3.22 January 15, 2003
    Copyright 2000, 2001, 2002, 2003 Novell, Inc.
    Auto-loading module ZENIMGDS.NLM
    ZENworks Imaging DS Library
    Version 3.22b March 20, 2003
    Copyright (c) 2000, 2001, 2002, 2003, Novell, Inc.
    Loading module JAVA.NLM
    This module is ALREADY loaded and cannot be loaded more than once.
    Loading module SYMCJIT.NLM
    Symantec Java JIT for Netware Java 1.3.x
    Version 3.10u October 21, 2002
    Copyright (C) 1997-2001 Novell, Inc.
    Portions Copyright (C) 1996-1999 Symantec Corporation
    Symantec JIT
    Symantec Java! JustInTime Compiler Version 3.10.110(x) for the Java 2Platform
    Copyright (C) 1996-99 Symantec Corporation
    ZENworks Imaging Server
    Version 3.22 January 15, 2003 Novell, Inc.
    Auto-loading module ZENIMGDS.NLM
    ZENworks Imaging DS Library
    Version 3.22b March 20, 2003
    Copyright (c) 2000, 2001, 2002, 2003, Novell, Inc.
    Loading module JAVA.NLM
    This module isAVA.NLM
    This module is ALREADY loaded and cannot be loaded more than once.
    Loading module SYMCJIT.NLM
    Symantec Java JIT for Netware 02
    Version 3.10u October 21, 2002
    Copyright (C) 1997-200 1996-1999 Symantec Corporation
    Portions Copyright (C)
    Symantec Java! JustInTime Compiler Version 3.10.110(x) for the Java 2Platform
    Copyright (C) 1996-99 Symantec Corporation
    Symantec Java! JustInTime Compiler Version 3.10.110(x) for the Java 2Platform
    Copyright (C) 1996-99
    Copyright (C) 1996-99 Symantec Corporation
    Symantec Java! JustInTime Compiler Version 3.10.110(x) for the Java 2Platform
    Copyright (C) 1996-99 Symantec Corporation
    Exception in thread "main" java.lang.NoClassDefFoundError:
    com/novell/applicatio
    n/zenworks/autowsmanagement/wsimport/ImportWorkstations
    java: Class
    com.novell.application.zenworks.autowsmanagement.w simport.ImportWork
    stations exited with status 1
    Loading module JNET.NLM
    Java net (based on 1.3)
    Version 1.31d March 13, 2003
    Copyright (c) 2003 Novell, Inc.
    Portions Copyright (c) 2002 Sun Microsystems
    Naming Service ready on port 2544
    Loading module JNCPV2.NLM
    Native Wrapper Java Class Libraries for NetWare
    Version 1.10 February 18, 2003
    Copyright 1997-1999 Novell, Inc. All Rights Reserved.
    Loading module ZENWS.NLM
    Zen Workstation Utility NLM
    Version 1.00 November 13, 2000
    Copyright 2000 Novell, Inc. All rights reserved.
    The running process will be suspended.
    java.lang.NullPointerException: data argument
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.DataOutputStream.write(Unknown Source)
    at
    com.novell.orb.service.naming.SocketWriterThread.r un(NamingServer.java:459)
    6-04-2003 2:22:18 pm: SERVER-5.0-4631 [nmID=1001C]
    WARNING! Server FSERVER1 experienced a critical error. The
    offending
    process was suspended or recovered. However, services hosted by
    this
    server may have been affected.
    Server FSERVER1 halted Wednesday, June 4, 2003 2:22:17.003 pm
    Abend 1 on P01: Server-5.00k: Page Fault Processor Exception (Error
    code
    00000000)
    Registers:
    CS = 0008 DS = 0010 ES = 0010 FS = 0010 GS = 0010 SS = 0010
    EAX = D8005990 EBX = 00000000 ECX = B8300E20 EDX = B8300E20
    ESI = FAFD7A2C EDI = B8300DA0 EBP = D809B530 ESP = BB1E1D44
    EIP = B86F6C96 FLAGS = 00010282
    B86F6C96 8B03 MOV EAX,[EBX]=?
    EIP in JVM.NLM at code start +00007C96h
    Access Location: 0x00000000
    The violation occurred while processing the following instruction:
    B86F6C96 8B03 MOV EAX,[EBX]
    B86F6C98 F6405610 TEST byte ptr [EAX+56],10
    B86F6C9C 754F JNZ B86F6CED
    B86F6C9E 53 PUSH EBX
    B86F6C9F E8FCD7FFFF CALL JVM.NLM|LinkClass
    B86F6CA4 83C404 ADD ESP,00000004
    B86F6CA7 E8C4040000 CALL JVM.NLM|EE
    B86F6CAC 8A7010 MOV DH,[EAX+10]
    B86F6CAF 89C6 MOV ESI,EAX
    B86F6CB1 84F6 TEST DH,DH
    Running process: Java_1178 Main Process
    Created by: NetWare Application
    Thread Owned by NLM: JAVA.NLM
    Stack pointer: BB1E1B20
    OS Stack limit: BB1C2E60
    Scheduling priority: 67371008
    Wait state: 3030070 (Yielded CPU)
    Stack: --FAFD7A2C ?
    --00000000 ?
    B87057F0 (JVM.NLM|jni_mkRefLocal+D0)
    --00000000 ?
    --D8012290 ?
    --D8005990 (SERVER.NLM|UserAddressSpace+5990)
    --B8300DA0 ?
    --BB1E2D0C ?
    --D809B530 ?
    --B8300DA0 ?
    --B8300DA0 ?
    --00000000 ?
    B8706E5D (JVM.NLM|jni_FatalError+7FD)
    --B8300DA0 ?
    --00000000 ?
    --FAFD7A2C ?
    --FAFD7A28 ?
    --00000000 ?
    --00000001 ?
    --B8300DA0 ?
    BB67CC67 (JNET.NLM|NET_GetFileDescriptorID+27)
    --B8300DA0 ?
    --00000000 ?
    --FAFD7A2C ?
    --FAFD7A28 ?
    --B8300DA0 ?
    BB67C7EB (JNET.NLM|Java_java_net_SocketInputStream_init+4B)
    --B8300DA0 ?
    --D86DD33C ?
    B86FF694 (JVM.NLM|ThreadCPUTimeMillis+194)
    --B8300DA0 ?
    --BB1E1DD8 ?
    --E1866570 ?
    --00000000 ?
    --D80161E8 ?
    --D86DD33C ?
    B86F651E (JVM.NLM|invokeLazyNativeMethod+16E)
    --E1866570 ?
    --D86DD33C ?
    --00000000 ?
    --B8300DA0 ?
    --00010001 ?
    --D809B528 ?
    --D809B558 ?
    --D8751138 ?
    --E1866570 ?
    B873656F (JVM.NLM|__irem_trap6+13BB)
    --E1866570 ?
    --D86DD33C ?
    --00000000 ?
    --B8300DA0 ?
    --00000000 ?
    --BB1E1ECC ?
    --D809B4F4 ?
    --D8004771 (SERVER.NLM|UserAddressSpace+4771)
    --D86DD008 ?
    --D809B4F4 ?
    --00000000 ?
    B86FE328 (JVM.NLM|do_execute_java_method_vararg+368)
    --BB1E1E58 ?
    --B8300DA0 ?
    --BB1E1E50 ?
    --D86DD198 ?
    --E189A3A0 ?
    --D865F00C ?
    --0000006B ?
    B86EF471 (JVM.NLM|ResolveClassConstant+B1)
    --00898A80 ?
    --BB1E1E30 ?
    --B10100D9 ?
    --00000000 ?
    --B8300DA0 ?
    --00000000 ?
    --B8300DA0 ?
    --E1866570 ?
    --00000000 ?
    --00000000 ?
    B86FDFB0 (JVM.NLM|do_execute_java_method+30)
    --B8300DA0 ?
    --E1866570 ?
    --D8004750 (SERVER.NLM|UserAddressSpace+4750)
    --D8004770 (SERVER.NLM|UserAddressSpace+4770)
    --D86DD198 ?
    --00000001 ?
    --BB1E1ECC ?
    --00000000 ?
    --00000000 ?
    --D8004770 (SERVER.NLM|UserAddressSpace+4770)
    --D86DD198 ?
    --B8300DA0 ?
    --E1866570 ?
    B86F6BB0 (JVM.NLM|PrepareInvoker+160)
    --B8300DA0 ?
    --E1866570 ?
    --00000000 ?
    --00000000 ?
    --D86DD198 ?
    --00000001 ?
    --D809B4B4 ?
    --D865F00C ?
    Additional Information:
    The CPU encountered a problem executing code in JVM.NLM. The
    problem
    may be in that module or in data passed to that module by a process
    owned by
    JAVA.NLM.
    Loaded Modules:
    ZENWS.NLM Zen Workstation Utility NLM
    Version 1.00 November 13, 2000
    Code Address: BB9AA000h Length: 0000230Bh
    Data Address: BB9AE000h Length: 00000474h
    JNCPV2.NLM Native Wrapper Java Class Libraries for NetWare
    Version 1.10 February 18, 2003
    Code Address: BB897000h Length: 00020F0Dh
    Data Address: BB8B9000h Length: 000025E8h
    JNET.NLM Java net (based on 1.3)
    Version 1.31d March 13, 2003
    Code Address: BB67A000h Length: 00002CBDh
    Data Address: BB67E000h Length: 00000AC0h
    SYMCJIT.NLM Symantec Java JIT for Netware Java 1.3.x
    Version 3.10u October 21, 2002
    Code Address: BB3DF000h Length: 00061FDAh
    Data Address: BB442000h Length: 000133E8h
    IMGSERV.NLM ZENworks Imaging Server
    Version 3.22 January 15, 2003
    Code Address: BB0AB000h Length: 0000A92Dh
    Data Address: BB0B7000h Length: 00003E6Ah
    ZENIMGDS.NLM ZENworks Imaging DS Library
    Version 3.22b March 20, 2003
    Code Address: BB079000h Length: 0000B1CDh
    Data Address: BB086000h Length: 00005436h
    ZIP.NLM Java zip (based on 1.3)
    Version 1.31d March 13, 2003
    Code Address: BB034000h Length: 0000AD6Ch
    Data Address: BB040000h Length: 00001B30h
    DBSRV7.NLM Sybase Adaptive Server Anywhere 7.0.0.505
    Version 7.00 December 14, 2000
    Code Address: BAD27000h Length: 00206F52h
    Data Address: BAF2F000h Length: 0004C2D0h
    JVMLIB.NLM Java jvmlib (based on 1.3)
    Version 1.31d March 13, 2003
    Code Address: BACD4000h Length: 00016671h
    Data Address: BACEC000h Length: 00005890h
    VERIFY.NLM Java verify (based on 1.3)
    Version 1.31d March 13, 2003
    Code Address: BAC80000h Length: 00008294h
    Data Address: BAC8A000h Length: 00001A40h
    JVM.NLM Java jvm (based on 1.3)
    Version 1.31d March 13, 2003
    Code Address: B86EF000h Length: 00048DAFh
    Data Address: B8763000h Length: 000077D4h
    JSOCK5X.NLM NetWare 5.x Support For Java Sockets
    Version 1.31a March 13, 2003
    Code Address: B832E000h Length: 00007DADh
    Data Address: B8337000h Length: 00000DE0h
    JAVA.NLM Novell JVM Version 1.3.1_06 Build 03031310
    Version 1.31d March 13, 2003
    Code Address: B8277000h Length: 0002AB91h
    Data Address: B82A3000h Length: 00009E98h
    JSOCK.NLM Support For Java Sockets
    Version 1.31a March 13, 2003
    Code Address: B826F000h Length: 000000B3h
    Data Address: B8271000h Length: 00000074h
    SWEEP.NLM Sophos Anti-Virus User Interface
    Version 2.16 September 16, 2002
    Code Address: B8D8A000h Length: 000311BFh
    Data Address: B8DBD000h Length: 0004B481h
    SWENGINE.NLM Sophos Anti-Virus engine
    Version 2.14 March 12, 2003
    Code Address: B8C8D000h Length: 000C6F5Bh
    Data Address: B8D55000h Length: 0001F766h
    TNRLTCP.NLM Backup Exec - Peer TCP Support
    Version 8.50 August 11, 2000
    Code Address: C9BC2000h Length: 00002988h
    Data Address: C9BC6000h Length: 00000DDCh
    TNRLSPX.NLM Backup Exec - Peer SPX Support
    Version 8.50 August 11, 2000
    Code Address: C9B3D000h Length: 00002D08h
    Data Address: C9B41000h Length: 00000CF8h
    COMDAT.NLM Backup Exec - Common DAT Target Handler
    Version 7.50 January 17, 2002
    Code Address: C97CD000h Length: 00002A43h
    Data Address: C97D1000h Length: 00000048h
    BECLIENT.NLM Backup Exec - NetWare Client
    Version 8.50 June 30, 2000
    Code Address: D5672000h Length: 00078BD9h
    Data Address: D56EC000h Length: 0000DAC8h
    BEMGR.NLM Backup Exec - Job Manager
    Version 8.50 September 7, 2000
    Code Address: D5433000h Length: 0006AD1Dh
    Data Address: D549F000h Length: 000079D8h
    BESRVR.NLM Backup Exec - Job Server
    Version 8.50 March 18, 2002
    Code Address: D5277000h Length: 000D8F73h
    Data Address: D5351000h Length: 00020DB0h
    AD_ASPI.NLM Backup Exec ASPI Device Driver for NetWare
    Version 7.50 May 28, 2002
    Code Address: D50DA000h Length: 00012590h
    Data Address: D50EE000h Length: 0000735Fh
    NRLTLI.NLM Backup Exec - Remote Workstation Backup Software
    Version 8.50 August 11, 2000
    Code Address: D5062000h Length: 00002378h
    Data Address: D5066000h Length: 00000BA8h
    BEPSVR.NLM Backup Exec - NCPE Server
    Version 8.50 March 19, 2002
    Code Address: D4F7C000h Length: 00027F7Dh
    Data Address: D4FA5000h Length: 00007600h
    NDPDS.NLM NDPS Print Device Subsystem for NetWare Servers
    Version 3.00 July 17, 2001
    Code Address: D4D2A000h Length: 0000B219h
    Data Address: D4D37000h Length: 000019E4h
    PH.NLM NDPS Port Handler for NetWare Servers
    Version 3.00a April 29, 2002
    Code Address: D4C92000h Length: 0000FD87h
    Data Address: D4CA3000h Length: 000016D4h
    XGATEWAY.NLM NDPS GATEWAY FOR XEROX PRINTERS
    Version 2.36 March 20, 2003
    Code Address: D4AC1000h Length: 000286EAh
    Data Address: D4AEB000h Length: 0000A5C4h
    OTMLAPI.NLM Open Transaction Manager (OTM) build 237
    Version 1.11 April 22, 2002
    Code Address: D4924000h Length: 000179A6h
    Data Address: D493D000h Length: 00011910h
    PMTHREAD.NLM NetWare Thread Primitives library
    Version 1.00 April 22, 2002
    Code Address: D4908000h Length: 00003C3Fh
    Data Address: D490D000h Length: 00000FD0h
    MATHLIB.NLM NetWare Math Library Auto-Load Stub
    Version 4.21 October 7, 1998
    Code Address: D48DE000h Length: 0000000Ah
    Data Address: 00000000h Length: 00000000h
    Global Code Address: D48E0000h Length: 00001000h
    HPGATE.NLM Hewlett-Packard NDPS Gateway
    Version 2.00u January 14, 2000
    Code Address: D46D4000h Length: 00022687h
    Data Address: D46F8000h Length: 00008E34h
    PFPNPD.NLM NDPS PerfectFit Printing Interface
    Version 2.00c April 29, 1999
    Code Address: D46A0000h Length: 0000BD3Bh
    Data Address: D46AD000h Length: 000012C4h
    PFPLIB.NLM NDPS PerfectFit Printing Library
    Version 2.00b March 19, 1999
    Code Address: D4642000h Length: 00007F0Eh
    Data Address: D464B000h Length: 0000008Ch
    OTMCDM.CDM Open Transaction Manager (OTM) CDM Filter
    Version 1.00 April 22, 2002
    Code Address: D44B1000h Length: 00003134h
    Data Address: 6D35E000h Length: 00000A18h
    NWASPI.CDM Novell ASPI Layer
    Version 3.25 October 14, 2002
    Code Address: D43A4000h Length: 00002C67h
    Data Address: 70B9D000h Length: 000003E4h
    TSANDS.NLM TSA for Novell eDirectory 7.x, 8.x
    Version 10110.95 September 26, 2002
    Code Address: D4300000h Length: 0001237Ch
    Data Address: D4314000h Length: 000017C0h
    TSA500.NLM NetWare 5.1 Target Service Agent
    Version 5.05d February 3, 2003
    Code Address: D4240000h Length: 00027D23h
    Data Address: D4269000h Length: 00005240h
    SMDR.NLM SMS - Storage Data Requestor
    Version 6.50c January 28, 2003
    Code Address: D416A000h Length: 00027554h
    Data Address: D4193000h Length: 0000291Ch
    SPXS.NLM NetWare SPX/SPXII Protocol (PTF)
    Version 5.14 January 18, 2000
    Code Address: D410A000h Length: 0000A021h
    Data Address: D4116000h Length: 00000FD8h
    Global Code Address: D4118000h Length: 00001000h
    RMANSRVR.NLM NDPS Resource Manager
    Version 3.03a October 18, 2002
    Code Address: D3F88000h Length: 0001C772h
    Data Address: D3FA6000h Length: 00002728h
    NIPPZLIB.NLM General Purpose ZIP File Library for NetWare
    Version 1.00a December 20, 2002
    Code Address: D3F70000h Length: 00002A23h
    Data Address: D3F74000h Length: 00000048h
    ZLIB.NLM ZLIB 1.1.4 General Purpose Compression Library for
    NetWare
    Version 1.01d December 20, 2002
    Code Address: D3F54000h Length: 0000BAB4h
    Data Address: D3F61000h Length: 000014D8h
    THEJUDGE.NLM NetWare Operating System Physical Memory Judge
    Version 5.10 March 3, 2000
    Code Address: D3EC5000h Length: 0000364Eh
    Data Address: D3ECA000h Length: 000002C8h
    NTFYDPOP.ENM Directed Pop-Up Delivery Method
    Version 2.00c February 26, 1999
    Code Address: D3E64000h Length: 000049C5h
    Data Address: D3E6A000h Length: 000002F5h
    NTFYWSOC.ENM Winsock Delivery Method
    Version 2.00c February 26, 1999
    Code Address: D3E1D000h Length: 000049C5h
    Data Address: D3E23000h Length: 000002F5h
    NTFYSPX.ENM SPX Delivery Method
    Version 2.00c February 26, 1999
    Code Address: D3DCD000h Length: 00004648h
    Data Address: D3DD3000h Length: 000002DDh
    HWDETECT.NLM Novell Hardware Insertion/Removal Detection
    Version 1.18e January 23, 2003
    Code Address: D3D8F000h Length: 00002B33h
    Data Address: D3D93000h Length: 00000D50h
    NTFYRPC.ENM RPC Delivery Method
    Version 2.00c February 26, 1999
    Code Address: D3D4A000h Length: 000042E1h
    Data Address: D3D50000h Length: 00000328h
    NTFYPOP.ENM Pop Up Delivery Method
    Version 2.00c May 21, 1999
    Code Address: D3CFA000h Length: 00001047h
    Data Address: D3CFD000h Length: 000004C1h
    NTFYLOG.ENM Log File Delivery Method
    Version 2.00c May 25, 1999
    Code Address: D3CB3000h Length: 00001461h
    Data Address: D3CB6000h Length: 00000C81h
    NTFYSRVR.NLM NDPS Notification Server
    Version 3.00e August 7, 2002
    Code Address: D3C48000h Length: 00013B97h
    Data Address: D3C5D000h Length: 0000145Ch
    BKUPEXEC.NLM Backup Exec SureStart
    Version 8.50 January 29, 2001
    Code Address: D3AC0000h Length: 0000F5CDh
    Data Address: D3AD1000h Length: 0000DC0Fh
    REGSRVR.NLM NDPS Service Registry
    Version 3.00f March 25, 2002
    Code Address: D3A0A000h Length: 000097D1h
    Data Address: D3A15000h Length: 00000BFCh
    NDPSM.NLM NDPS Manager
    Version 3.01a February 18, 2003
    Code Address: D3944000h Length: 0006C5E8h
    Data Address: D39B2000h Length: 0001B348h
    DPLSV386.NLM NetWare 5.x, 6.x Distributed Print Library - DPLSV386
    Version 1.08f February 12, 2003
    Code Address: D38AF000h Length: 0005F22Dh
    Data Address: D3910000h Length: 00006644h
    NIPPED.NLM NetWare 5.x, 6.x INF File Editing Library - NIPPED
    Version 1.03 December 20, 2002
    Code Address: D3882000h Length: 0000524Dh
    Data Address: D3889000h Length: 0000016Ch
    SCRSAVER.NLM NetWare 5 Screen Saver
    Version 1.02a January 27, 2003
    Code Address: D36B2000h Length: 00006C41h
    Data Address: D36BA000h Length: 00000EA8h
    RCONAG6.NLM RConsole Agent for Netware
    Version 6.10d January 28, 2003
    Code Address: D35C7000h Length: 00005085h
    Data Address: D35CE000h Length: 00002E40h
    BROKER.NLM NDPS Broker
    Version 3.00g January 29, 2003
    Code Address: D3547000h Length: 0000FAA0h
    Data Address: D3558000h Length: 00006808h
    DPRPCNLM.NLM Novell NDPS RPC Library NLM
    Version 3.00m February 12, 2003
    Code Address: D3523000h Length: 000052D4h
    Data Address: D352A000h Length: 00001CB0h
    SLPDA.NLM SERVICE LOCATION NDS DIRECTORY AGENT (RFC2165)
    Version 1.07k November 12, 2002
    Code Address: D31FF000h Length: 00006173h
    Data Address: D3207000h Length: 00003260h
    SQLCODBC.NLM SQL Connector ODBC
    Version 1.00 September 15, 1999
    Code Address: D31C5000h Length: 00004CE9h
    Data Address: D31CB000h Length: 0000069Ch
    VTXODBC.NLM VORTEXodbc
    Version 2.08b September 30, 1999
    Code Address: D3176000h Length: 0000E13Dh
    Data Address: D3186000h Length: 0000D670h
    SQLCMON.NLM SQL Connector Monitor
    Version 1.00 October 22, 1999
    Code Address: D30AA000h Length: 00018C7Ch
    Data Address: D30C4000h Length: 00006C44h
    WEBDAV.NLM Novell WebDAV NSAPI plugin
    Version 5.10f January 24, 2003
    Code Address: D275C000h Length: 00028EEAh
    Data Address: D2786000h Length: 00007D60h
    VTXNETD.NLM VORTEX network daemon
    Version 3.05b September 30, 1999
    Code Address: D2706000h Length: 000033ADh
    Data Address: D270B000h Length: 00002DE0h
    NWHDIR.NLM Novonyx User Home Directories
    Version 5.10c September 13, 2002
    Code Address: D269F000h Length: 0000367Bh
    Data Address: D26A4000h Length: 0000098Ch
    QFIND215.NLM QuickFinder Engine
    Version 2.15l October 2, 2001
    Code Address: D256D000h Length: 0009FEA0h
    Data Address: D260E000h Length: 000204D5h
    NWFTPD.NLM NetWare FTP Server
    Version 5.03l February 12, 2003
    Code Address: D238C000h Length: 00014B99h
    Data Address: D23A2000h Length: 0000AEB0h
    FTPIF.NLM Interface Module for NetWare FTP Server and
    Statistics
    Version 2.07i January 6, 2003
    Code Address: D2370000h Length: 0000051Ch
    Data Address: D2372000h Length: 00000030h
    ADMSERV.NLM NetWare Web Manager
    Version 5.10c May 1, 2001
    Code Address: D2226000h Length: 0005A16Ch
    Data Address: D2282000h Length: 00045384h
    NSHTTPD.NLM NetWare Enterprise Web Server
    Version 5.10f January 24, 2003
    Code Address: D1EE7000h Length: 00191DC8h
    Data Address: D207A000h Length: 00083568h
    NWGLOBSM.NLM nwglobsm CGI
    Version 5.10c May 1, 2001
    Code Address: D1E99000h Length: 000016CBh
    Data Address: D1E9C000h Length: 00000824h
    NSLCGI.NLM LCGI support library
    Version 5.10c May 1, 2001
    Code Address: D1E20000h Length: 0000DC33h
    Data Address: D1E2F000h Length: 00002EC8h
    CSSYSMSG.NLM CSLIB: System Messages Facility
    Version 1.01h March 18, 1999
    Code Address: D1D6C000h Length: 00010A57h
    Data Address: D1D7E000h Length: 00004298h
    NETDB.NLM NETWORK DATABASE ACCESS NLM
    Version 4.10s June 17, 2002
    Code Address: D1CFF000h Length: 00013480h
    Data Address: D1D14000h Length: 00002638h
    NSSNMP.NLM NSSNMP
    Version 5.10c May 1, 2001
    Code Address: D19B9000h Length: 000046F2h
    Data Address: D19BF000h Length: 0000164Ch
    NWSNUT.NLM NetWare NLM Utility User Interface
    Version 6.01d October 7, 2002
    Code Address: D193D000h Length: 000124EBh
    Data Address: D1951000h Length: 000006E0h
    CRON.NLM NetWare Scheduler
    Version 1.70 June 8, 1998
    Code Address: D179B000h Length: 00000BFCh
    Data Address: D179D000h Length: 00000308h
    NLDAP.NLM LDAP v3 for NDS 8
    Version 3.23 August 15, 2001
    Code Address: D1701000h Length: 0002A145h
    Data Address: D172D000h Length: 0000F220h
    SAS.NLM Secure Authentication Services
    Version 1.70 May 7, 2002
    Code Address: D1584000h Length: 00056370h
    Data Address: D15DC000h Length: 0001E480h
    SAL.NLM Novell System Abstraction Layer Version 2.0.0
    Version 10110.05 November 20, 2001
    Code Address: D1568000h Length: 0000793Ah
    Data Address: D1571000h Length: 000011F0h
    BTCPCOM.NLM BTCPCOM.NLM v7.0.600, Build 154
    Version 7.00 August 19, 1999
    Code Address: D147D000h Length: 00002A16h
    Data Address: D1481000h Length: 00000B50h
    PORTAL.NLM NetWare Portal NLM
    Version 1.10b February 27, 2003
    Code Address: D12C6000h Length: 00069582h
    Data Address: D1331000h Length: 0002AD1Ch
    NWIDK.NLM CDWare Volume Module
    Version 2.00 March 18, 1999
    Code Address: D12AD000h Length: 000035D0h
    Data Address: D12B2000h Length: 00000730h
    PARTAPI.NLM Partition APIs
    Version 1.21 December 21, 1999
    Code Address: D12A9000h Length: 00000879h
    Data Address: D12AB000h Length: 00000114h
    WSPSSL.NLM NetWare Winsock Service 1.0 NLM for SSL
    Version 6.20b February 21, 2003
    Code Address: D10AF000h Length: 00005EC3h
    Data Address: D10B6000h Length: 000108DFh
    HTTPSTK.NLM Novell Small Http Interface
    Version 1.10 January 15, 2003
    Code Address: D0E8B000h Length: 00016386h
    Data Address: D0EA3000h Length: 000121A0h
    BSPXCOM.NLM BSPXCOM.NLM v7.0.600, Build 154
    Version 7.00 August 19, 1999
    Code Address: D0E68000h Length: 00003D46h
    Data Address: D0E6D000h Length: 00000A18h
    NILE.NLM Novell Secure Socket Services NLM With Debug Symbols
    Version 1.06a January 17, 2003
    Code Address: D0D3C000h Length: 0005325Bh
    Data Address: D0D91000h Length: 0001F3D0h
    PKI.NLM Novell Certificate Server
    Version 2.03b November 7, 2000
    Code Address: D0C96000h Length: 0006FA25h
    Data Address: D0D07000h Length: 0001DC00h
    PKIAPI.NLM Public Key Infrastructure Services
    Version 2.03 March 12, 2002
    Code Address: D0B9D000h Length: 0002C911h
    Data Address: D0BCB000h Length: 00007214h
    NWUTIL.NLM Novell Utility Library NLM ()
    Version 1.03e December 13, 2002
    Code Address: D0B22000h Length: 00012A48h
    Data Address: D0B36000h Length: 00019D64h
    NWBSRVCM.NLM NWBSRVCM.NLM v7.0.600, Build 154
    Version 7.00 August 19, 1999
    Code Address: D0A37000h Length: 00006046h
    Data Address: D0A3F000h Length: 00000A30h
    SERVINST.NLM NetWare 5.x/6.x Instrumentation
    Version 5.00h February 11, 2003
    Code Address: D0473000h Length: 0001053Ch
    Data Address: D0485000h Length: 00007484h
    HOSTMIB.NLM NetWare 5.x/6.x Host Resources MIB
    Version 5.00j February 18, 2003
    Code Address: CFFD1000h Length: 0000B4C0h
    Data Address: CFFDE000h Length: 00003CD8h
    NLSTRAP.NLM NetWare License Server Trap
    Version 5.02 July 26, 2001
    Code Address: CF39D000h Length: 000028EEh
    Data Address: CF3A1000h Length: 00000689h
    NLSFLAIM.NLM NLS FLAIM Database Engine
    Version 5.02 July 31, 2001
    Code Address: CF2FC000h Length: 00071D97h
    Data Address: CF36F000h Length: 00006FB4h
    NSPDNS.NLM NetWare Winsock 2.0 NSPDNS.NLM Name Service Providers
    Version 6.20a February 19, 2003
    Code Address: CCD82000h Length: 0000230Fh
    Data Address: CCD86000h Length: 000004E4h
    WSPIP.NLM NetWare Winsock Service 1.0 NLM for TCP and UDP
    Version 6.20b February 21, 2003
    Code Address: CCD5E000h Length: 0000E894h
    Data Address: CCD6E000h Length: 0000208Ch
    SLPTCP.NLM SERVICE LOCATION TCP/UDP INTERFACE (RFC2165)
    Version 1.07k November 12, 2002
    Code Address: CCD03000h Length: 00002967h
    Data Address: CCD07000h Length: 00000C80h
    NCPIP.NLM NetWare NCP Services over IP
    Version 1.35 February 14, 2002
    Code Address: CCC84000h Length: 00013CC9h
    Data Address: CCC99000h Length: 000020E0h
    BSDSOCK.NLM Novell BSDSOCK Module (Domestic) CSP8patch_17Aug2k2 Version 6.13b August 17, 2002
    Code Address: CC7B2000h Length: 0000C5A9h
    Data Address: CC7C0000h Length: 0000BB00h
    TCPIP.NLM Novell TCP/IP Stack - Network module (128 bit
    encryption)
    Version 5.91o October 30, 2002
    Code Address: CC152000h Length: 0006069Bh
    Data Address: CC1B4000h Length: 00032201h
    TCP.NLM Novell TCP/IP Stack - Transport module (128 bit
    encryption)
    Version 5.91o October 30, 2002
    Code Address: CC084000h Length: 0001F2FBh
    Data Address: CC0A5000h Length: 00078E30h
    NETLIB.NLM Novell TCPIP NETLIB Module CSP9_Rel
    Version 6.03a October 7, 2002
    Code Address: CBEDE000h Length: 00008CFCh
    Data Address: CBEE8000h Length: 000D08C0h
    CSLIND.NLM TCPIP CSL INDEPENDENCE MODULE 7Dec99 7Dec99
    Version 4.21 December 7, 1999
    Code Address: CBDE4000h Length: 000003CCh
    Data Address: CBDE6000h Length: 000024E0h
    LSAPI.NLM NLS LSAPI Library
    Version 5.02 January 7, 2003
    Code Address: CBDA4000h Length: 0000A51Bh
    Data Address: CBDB0000h Length: 00001B00h
    NLSAPI.NLM NLSAPI
    Version 5.02 January 7, 2003
    Code Address: CBCB4000h Length: 000124ABh
    Data Address: CBCC8000h Length: 000022A4h
    CE1000.LAN Intel(R) 8254X Based Network Connection
    Version 6.76 September 25, 2002
    Code Address: CBC40000h Length: 0000F730h
    Data Address: 7FDEC000h Length: 000067E7h
    ETHERTSM.NLM Novell Ethernet Topology Specific Module
    Version 3.89 January 27, 2003
    Code Address: CBC38000h Length: 000024D7h
    Data Address: CBC3C000h Length: 000002BCh
    MSM.NLM Novell Multi-Processor Media Support Module
    Version 4.10 January 24, 2003
    Code Address: CBC17000h Length: 0000E5B3h
    Data Address: CBC27000h Length: 00003DCCh
    CONNAUD.NLM Licensed Connection Meter
    Version 3.10 September 12, 2002
    Code Address: CBBB2000h Length: 00003683h
    Data Address: CBBB7000h Length: 00000A9Ch
    NLSMETER.NLM NLS - Software Usage Metering Database
    Version 3.23 January 29, 2003
    Code Address: CBB99000h Length: 0000E973h
    Data Address: CBBA9000h Length: 0000785Ch
    NLSLSP.NLM NLS - License Service Provider
    Version 5.02 November 25, 2002
    Code Address: CBAE3000h Length: 00069D77h
    Data Address: CBB4E000h Length: 0001EDB8h
    NSPSAP.NLM NetWare Winsock 2.0 NLM NSPSAP.NLM Name Service
    Provider
    Version 6.20a February 19, 2003
    Code Address: CBAD7000h Length: 00001EE7h
    Data Address: CBADA000h Length: 00000610h
    CSL.NLM NetWare Call Support Layer For NetWare
    Version 2.06b January 13, 2000
    Code Address: CBA70000h Length: 0000CB32h
    Data Address: CBA7E000h Length: 000028F4h
    BTRIEVE.NLM BTRIEVE.NLM v7.51.001
    Version 7.51 November 28, 1999
    Code Address: CBA3D000h Length: 000013DFh
    Data Address: CBA40000h Length: 0000097Ch
    NWMKDE.NLM NWMKDE.NLM v7.51.001
    Version 7.51 September 20, 1999
    Code Address: CB70B000h Length: 00099797h
    Data Address: CB7A6000h Length: 0002EF30h
    NWAIF103.NLM nwaif103.nlm v1.00, Build 76
    Version 1.00 January 23, 1998
    Code Address: CB6D8000h Length: 0000FAD1h
    Data Address: CB6E9000h Length: 000067B8h
    NWUCMGR.NLM NWUCMGR.NLM v1.5 Build 154
    Version 1.05 September 3, 1999
    Code Address: CB68D000h Length: 0000D600h
    Data Address: CB69C000h Length: 00004B04h
    IPXS.NLM NetWare STREAMS IPX Protocol
    Version 4.10a February 12, 1998
    Code Address: CB567000h Length: 00001C95h
    Data Address: CB56A000h Length: 000000ECh
    Global Code Address: CB56C000h Length: 00001000h
    WSPIPX.NLM NetWare Winsock Service 1.0 NLM for IPX and SPX
    Version 6.20a February 19, 2003
    Code Address: CB53F000h Length: 0000DB29h
    Data Address: CB54E000h Length: 00001762h
    NCPIPX.NLM NetWare NCP Services over IPX
    Version 5.10 April 25, 2002
    Code Address: CB529000h Length: 00005837h
    Data Address: CB530000h Length: 00001268h
    SNMP.NLM Netware 4.x/5.x/6.x SNMP Service
    Version 4.16d February 18, 2003
    Code Address: CB4F2000h Length: 00013740h
    Data Address: CB507000h Length: 00003110h
    TLI.NLM NetWare Transport Level Interface Library
    Version 4.30b December 19, 2000
    Code Address: CB4D0000h Length: 00003859h
    Data Address: CB4D5000h Length: 00000164h
    Global Code Address: CB4D7000h Length: 00001000h
    Global Data Address: CB4D9000h Length: 00002000h
    CONLOG.NLM System Console Logger
    Version 1.04b February 23, 1999
    Code Address: CB46B000h Length: 00001D8Ch
    Data Address: CB46E000h Length: 00001C50h
    AFTER311.NLM NetWare 3.11 Compatible NLM Support Module
    Version 4.10a October 21, 1994
    Code Address: CB467000h Length: 00000018h
    Data Address: CB469000h Length: 00000004h
    IPXSPX.NLM NetWare IPX/SPX Protocol Stack NLM
    Version 5.04 November 20, 2001
    Code Address: CB418000h Length: 0000FC60h
    Data Address: CB429000h Length: 00009ACCh
    NSPNDS.NLM NetWare Winsock 2.0 NSPNDS.NLM Name Service Provider Version 6.20 November 12, 2001
    Code Address: CB406000h Length: 00006547h
    Data Address: CB40E000h Length: 00000518h
    CALNLM32.NLM NetWare NWCalls Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB3B0000h Length: 00017349h
    Data Address: CB3C9000h Length: 00000510h
    TIMESYNC.NLM NetWare Time Synchronization Services
    Version 5.26j February 25, 2003
    Code Address: CB358000h Length: 0000B63Ch
    Data Address: CB365000h Length: 00003630h
    CLXNLM32.NLM NetWare NWCLX Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB351000h Length: 000011F3h
    Data Address: CB354000h Length: 000001B0h
    DSAPI.NLM NetWare NWNet Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB34A000h Length: 00000043h
    Data Address: CB34C000h Length: 00000024h
    DSEVENT.NLM NetWare DSEvent Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB346000h Length: 00000633h
    Data Address: CB348000h Length: 00000034h
    NETNLM32.NLM NetWare NWNet Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB2FF000h Length: 00035EB9h
    Data Address: CB336000h Length: 00004D26h
    NCPNLM32.NLM NetWare NWNCP Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB2C1000h Length: 0001C0C3h
    Data Address: 00000000h Length: 00000000h
    CLNNLM32.NLM NetWare NWClient Runtime Library
    Version 5.05h March 11, 2003
    Code Address: CB2B8000h Length: 00001C72h
    Data Address: CB2BB000h Length: 00000130h
    CLIB.NLM Novell Standard C Runtime Library for NLMs
    Version 5.90i March 25, 2003
    Code Address: CB22B000h Length: 0001894Eh
    Data Address: CB245000h Length: 00002FB0h
    NIT.NLM NetWare Interface Tools Library for NLMs
    Version 5.90i March 25, 2003
    Code Address: CB1FD000h Length: 0001C694h
    Data Address: CB21B000h Length: 00000690h
    NLMLIB.NLM Novell NLM Runtime Library
    Version 5.90i March 25, 2003
    Code Address: CB199000h Length: 00025872h
    Data Address: CB1C0000h Length: 00003890h
    STREAMS.NLM NetWare STREAMS PTF
    Version 6.00c January 18, 2002
    Code Address: CB161000h Length: 000120CDh
    Data Address: CB175000h Length: 000010A0h
    Global Code Address: CB178000h Length: 00001000h
    REQUESTR.NLM Novell NCP Requestor for NLMs
    Version 5.90i March 25, 2003
    Code Address: CB11D000h Length: 0001FC63h
    Data Address: CB13E000h Length: 00001090h
    THREADS.NLM Novell Threads Package for NLMs
    Version 5.90i March 25, 2003
    Code Address: CB0D8000h Length: 00018C48h
    Data Address: CB0F2000h Length: 00011660h
    LIB0.NLM Novell Ring 0 Library for NLMs
    Version 5.90i March 25, 2003
    Code Address: CAE49000h Length: 0002528Ah
    Data Address: CAE70000h Length: 00228040h
    DS.NLM Novell Directory Services Version 8
    Version 8.85 February 6, 2003
    Code Address: CA33C000h Length: 001A6B11h
    Data Address: CA4E4000h Length: 00035F20h
    ROLLCALL.NLM RollCall NLM (101, API 1.0)
    Version 5.00 July 27, 1998
    Code Address: CA336000h Length: 0000055Dh
    Data Address: CA338000h Length: 000002D4h
    POLIMGR.NLM NetWare License Policy Manager
    Version 6.14 November 21, 2002
    Code Address: CA308000h Length: 000139CCh
    Data Address: CA31D000h Length: 00008C34h
    NDSAUDIT.NLM Directory Services Audit
    Version 2.08 August 29, 2001
    Code Address: CA069000h Length: 000104A4h
    Data Address: CA07B000h Length: 00002ED0h
    MASV.NLM Mandatory Access Control Service
    Version 1.34a August 23, 2001
    Code Address: CA037000h Length: 0000F176h
    Data Address: CA048000h Length: 00002340h
    PMLODR.NLM PMLodr for NW51
    Version 1.20 February 4, 2003
    Code Address: C9F9E000h Length: 0000DE7Ah
    Data Address: C9FAD000h Length: 00001684h
    NSPSLP.NLM NetWare Winsock 2.0 NSPSLP.NLM Name Service Provider Version 6.20a February 19, 2003
    Code Address: C9F7C000h Length: 00005ED3h
    Data Address: C9F83000h Length: 00000B30h
    SLP.NLM SERVICE LOCATION PROTOCOL (RFC2165)
    Version 1.07k November 12, 2002
    Code Address: C9F14000h Length: 00012163h
    Data Address: C9F28000h Length: 00003DACh
    DSLOADER.NLM Novell Directory Services Version 8 Loader
    Version 1.84 January 24, 2003
    Code Address: C9E2D000h Length: 00006DF6h
    Data Address: C9E35000h Length: 0000060Ch
    XIM.XLM Novell NICI Signed Loader
    Version 1.02 May 18, 2001
    Code Address: C9B49000h Length: 0001DE70h
    Data Address: 7E798000h Length: 00003900h
    WS2_32.NLM NetWare Winsock 2.0 NLM
    Version 6.20a February 18, 2003
    Code Address: C99F5000h Length: 00034902h
    Data Address: C9A2B000h Length: 0001085Eh
    LIBC.NLM Novell Kernel Services and Standard C Runtime Library
    for
    NLMs [optimized, 3]
    Version 6.01b March 25, 2003
    Code Address: C97F7000h Length: 0008F716h
    Data Address: C9888000h Length: 000291C1h
    UNI_UPR.NLM NetWare Unicode Upper Case API, V1.01
    Version 1.01 July 23, 1998
    Code Address: C96AB000h Length: 00000107h
    Data Address: C96AD000h Length: 00002328h
    UNI_MON.NLM NetWare Unicode Lower Case API, V1.01
    Version 1.01 July 23, 1998
    Code Address: C96A5000h Length: 00000107h
    Data Address: C96A7000h Length: 0000207Ch
    UNI_437.NLM NetWare Unicode conversion API for code page 437,
    V1.01
    Version 1.01 July 23, 1998
    Code Address: C969D000h Length: 000001B7h
    Data Address: C969F000h Length: 00000B44h
    LOCNLM32.NLM NetWare NWLocale Runtime Library
    Version 5.05h March 11, 2003
    Code Address: C9691000h Length: 000047EBh
    Data Address: C9697000h Length: 00000C60h
    UNICODE.NLM NetWare Unicode Runtime Library
    Version 5.05h March 11, 2003
    Code Address: C965D000h Length: 00003413h
    Data Address: C9662000h Length: 00008AE4h
    NCP.NLM NetWare Core Protocol (NCP) Engine
    Version 5.10a January 16, 2003
    Code Address: C960C000h Length: 0002397Fh
    Data Address: C9631000h Length: 00018244h
    QUEUE.NLM NetWare Queue Services NLM
    Version 5.10 June 20, 2000
    Code Address: C95B0000h Length: 00006D70h
    Data Address: C95B8000h Length: 000000A0h
    FILESYS.NLM NetWare File System NLM
    Version 5.10 November 20, 2002
    Code Address: C839F000h Length: 0008D7E7h
    Data Address: C842E000h Length: 00012B80h
    LFS.NLM NetWare Logical File System NLM
    Version 5.10 October 31, 2002
    Code Address: C8363000h Length: 000093ECh
    Data Address: C836E000h Length: 0000832Ch
    CONNMGR.NLM NetWare Connection Manager NLM
    Version 5.11 October 22, 2002
    Code Address: C82ED000h Length: 0000D355h
    Data Address: C82FC000h Length: 00002838h
    SGUID.NLM NetWare 5 GUID Services
    Version 1.52 October 18, 2000
    Code Address: C82CF000h Length: 00000C0Ch
    Data Address: C82D1000h Length: 000000FAh
    LSL.NLM Novell NetWare Link Support Layer
    Version 4.77 February 4, 2003
    Code Address: C808D000h Length: 0000A5E7h
    Data Address: C8099000h Length: 00009EC8h
    BKSTROSM.HAM Novell I2O Block Storage Class OSM
    Version 1.18 February 16, 2000
    Code Address: C8011000h Length: 000034D4h
    Data Address: 7C8C8000h Length: 000007D4h
    I2OPCI.NLM Novell I2O PCI Bus Driver. I2OPCI -- I2O v1.5d
    Version 1.10 September 25, 2001
    Code Address: D0944000h Length: 000019D9h
    Data Address: 7C8BE000h Length: 000003D0h
    IOPX.NLM Novell I2O Transport Driver with Management
    Extensions.
    IOPX -- I2O SPEC v1.5d
    Version 1.28 September 25, 2001
    Code Address: D0907000h Length: 00015CB2h
    Data Address: 7C8BF000h Length: 00004EFEh
    AHA2940.HAM Adaptec Ultra Host Adapter Module
    Version 8.30m August 28, 2002
    Code Address: D0869000h Length: 0001FBC3h
    Data Address: 7E061000h Length: 000040B4h
    MPS14.PSM Platform Support Module for NetWare 5/6 and MPS v1.4compliant systems.
    Version 2.09 September 4, 2002
    Code Address: D0794000h Length: 0000F177h
    Data Address: 00614000h Length: 000049B0h
    NWPALOAD.NLM NetWare 5 NWPA Load Utility
    Version 3.00 February 8, 2000
    Code Address: D076C000h Length: 00000007h
    Data Address: 00000000h Length: 00000000h
    NWPA.NLM NetWare 5 NetWare Peripheral Architecture NLM
    Version 3.09b February 4, 2003
    Code Address: D070A000h Length: 00015EC6h
    Data Address: D0721000h Length: 00002928h
    MM.NLM NetWare Media Manager
    Version 2.03a February 4, 2003
    Code Address: D0689000h Length: 00022C0Fh
    Data Address: D06AD000h Length: 00008BF8h
    NBI.NLM NetWare Bus Interface
    Version 2.28a February 25, 2002
    Code Address: D062D000h Length: 00009A39h
    Data Address: D0638000h Length: 00001748h
    NEB.NLM Novell Event Bus
    Version 1.04 September 6, 2002
    Code Address: D060C000h Length: 00003F31h
    Data Address: D0611000h Length: 00000724h
    DIAG500.NLM Diagnostic/coredump utility for NetWare 5
    Version 2.00 February 7, 2000
    Code Address: D05CE000h Length: 000047F4h
    Data Address: D05D4000h Length: 000152E4h
    CPUCHECK.NLM NetWare Processor Checking Utility
    Version 1.03 April 8, 2002
    Code Address: D05C6000h Length: 00000F3Ah
    Data Address: D05C8000h Length: 0000482Ch
    PVER500.NLM NetWare 5.XX Version Library
    Version 3.00 February 4, 2003
    Code Address: D0437000h Length: 000006A3h
    Data Address: D0439000h Length: 00000360h
    NWKCFG.NLM NetWare Kernel Config NLM
    Version 2.07 September 13, 2002
    Code Address: D042A000h Length: 000038CBh
    Data Address: D042F000h Length: 00002E44h
    CDBE.NLM NetWare Configuration DB Engine
    Version 5.11a February 19, 2003
    Code Address: D008C000h Length: 0000FAA6h
    Data Address: D009D000h Length: 000158BEh
    SERVER.NLM NetWare Server Operating System
    Version 5.00 February 27, 2003
    Code Address: FC000000h Length: 00116000h
    Data Address: FC516000h Length: 000DC000h

    Thanks for posting back.
    Jared L Jennings
    Novell Support Forums SysOp
    Using XanaNews 1.15.2.6
    Geek by nature, NetWare by choice.

  • JTabbedPane with close Icons

    Ok, so I was trying to get a JTabbedPane with 'X' icons on each tab. Searched this site, and found no answers, but loads of questions on how to do it. I've done it now, and here's my code.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    * A JTabbedPane which has a close ('X') icon on each tab.
    * To add a tab, use the method addTab(String, Component)
    * To have an extra icon on each tab (e.g. like in JBuilder, showing the file type) use
    * the method addTab(String, Component, Icon). Only clicking the 'X' closes the tab.
    public class JTabbedPaneWithCloseIcons extends JTabbedPane implements MouseListener {
      public JTabbedPaneWithCloseIcons() {
        super();
        addMouseListener(this);
      public void addTab(String title, Component component) {
        this.addTab(title, component, null);
      public void addTab(String title, Component component, Icon extraIcon) {
        super.addTab(title, new CloseTabIcon(extraIcon), component);
      public void mouseClicked(MouseEvent e) {
        int tabNumber=getUI().tabForCoordinate(this, e.getX(), e.getY());
        if (tabNumber < 0) return;
        Rectangle rect=((CloseTabIcon)getIconAt(tabNumber)).getBounds();
        if (rect.contains(e.getX(), e.getY())) {
          //the tab is being closed
          this.removeTabAt(tabNumber);
      public void mouseEntered(MouseEvent e) {}
      public void mouseExited(MouseEvent e) {}
      public void mousePressed(MouseEvent e) {}
      public void mouseReleased(MouseEvent e) {}
    * The class which generates the 'X' icon for the tabs. The constructor
    * accepts an icon which is extra to the 'X' icon, so you can have tabs
    * like in JBuilder. This value is null if no extra icon is required.
    class CloseTabIcon implements Icon {
      private int x_pos;
      private int y_pos;
      private int width;
      private int height;
      private Icon fileIcon;
      public CloseTabIcon(Icon fileIcon) {
        this.fileIcon=fileIcon;
        width=16;
        height=16;
      public void paintIcon(Component c, Graphics g, int x, int y) {
        this.x_pos=x;
        this.y_pos=y;
        Color col=g.getColor();
        g.setColor(Color.black);
        int y_p=y+2;
        g.drawLine(x+1, y_p, x+12, y_p);
        g.drawLine(x+1, y_p+13, x+12, y_p+13);
        g.drawLine(x, y_p+1, x, y_p+12);
        g.drawLine(x+13, y_p+1, x+13, y_p+12);
        g.drawLine(x+3, y_p+3, x+10, y_p+10);
        g.drawLine(x+3, y_p+4, x+9, y_p+10);
        g.drawLine(x+4, y_p+3, x+10, y_p+9);
        g.drawLine(x+10, y_p+3, x+3, y_p+10);
        g.drawLine(x+10, y_p+4, x+4, y_p+10);
        g.drawLine(x+9, y_p+3, x+3, y_p+9);
        g.setColor(col);
        if (fileIcon != null) {
          fileIcon.paintIcon(c, g, x+width, y_p);
      public int getIconWidth() {
        return width + (fileIcon != null? fileIcon.getIconWidth() : 0);
      public int getIconHeight() {
        return height;
      public Rectangle getBounds() {
        return new Rectangle(x_pos, y_pos, width, height);
    }You can also specify an extra icon to put on each tab. Read my comments on how to do it.

    With the following code you'll be able to have use SCROLL_TAB_LAYOUT and WRAP_TAB_LAYOUT. With setCloseIcons() you'll be able to set images for the close-icons.
    The TabbedPane:
    import javax.swing.Icon;
    import javax.swing.JComponent;
    import javax.swing.JTabbedPane;
    import javax.swing.JViewport;
    import javax.swing.SwingUtilities;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseMotionListener;
    import javax.swing.event.EventListenerList;
    import javax.swing.plaf.basic.BasicTabbedPaneUI;
    import javax.swing.plaf.metal.MetalTabbedPaneUI;
    * A JTabbedPane which has a close ('X') icon on each tab.
    * To add a tab, use the method addTab(String, Component)
    * To have an extra icon on each tab (e.g. like in JBuilder, showing the file
    * type) use the method addTab(String, Component, Icon). Only clicking the 'X'
    * closes the tab.
    public class CloseableTabbedPane extends JTabbedPane implements MouseListener,
      MouseMotionListener {
       * The <code>EventListenerList</code>.
      private EventListenerList listenerList = null;
       * The viewport of the scrolled tabs.
      private JViewport headerViewport = null;
       * The normal closeicon.
      private Icon normalCloseIcon = null;
       * The closeicon when the mouse is over.
      private Icon hooverCloseIcon = null;
       * The closeicon when the mouse is pressed.
      private Icon pressedCloseIcon = null;
       * Creates a new instance of <code>CloseableTabbedPane</code>
      public CloseableTabbedPane() {
        super();
        init(SwingUtilities.LEFT);
       * Creates a new instance of <code>CloseableTabbedPane</code>
       * @param horizontalTextPosition the horizontal position of the text (e.g.
       * SwingUtilities.TRAILING or SwingUtilities.LEFT)
      public CloseableTabbedPane(int horizontalTextPosition) {
        super();
        init(horizontalTextPosition);
       * Initializes the <code>CloseableTabbedPane</code>
       * @param horizontalTextPosition the horizontal position of the text (e.g.
       * SwingUtilities.TRAILING or SwingUtilities.LEFT)
      private void init(int horizontalTextPosition) {
        listenerList = new EventListenerList();
        addMouseListener(this);
        addMouseMotionListener(this);
        if (getUI() instanceof MetalTabbedPaneUI)
          setUI(new CloseableMetalTabbedPaneUI(horizontalTextPosition));
        else
          setUI(new CloseableTabbedPaneUI(horizontalTextPosition));
       * Allows setting own closeicons.
       * @param normal the normal closeicon
       * @param hoover the closeicon when the mouse is over
       * @param pressed the closeicon when the mouse is pressed
      public void setCloseIcons(Icon normal, Icon hoover, Icon pressed) {
        normalCloseIcon = normal;
        hooverCloseIcon = hoover;
        pressedCloseIcon = pressed;
       * Adds a <code>Component</code> represented by a title and no icon.
       * @param title the title to be displayed in this tab
       * @param component the component to be displayed when this tab is clicked
      public void addTab(String title, Component component) {
        addTab(title, component, null);
       * Adds a <code>Component</code> represented by a title and an icon.
       * @param title the title to be displayed in this tab
       * @param component the component to be displayed when this tab is clicked
       * @param extraIcon the icon to be displayed in this tab
      public void addTab(String title, Component component, Icon extraIcon) {
        boolean doPaintCloseIcon = true;
        try {
          Object prop = null;
          if ((prop = ((JComponent) component).
                        getClientProperty("isClosable")) != null) {
            doPaintCloseIcon = (Boolean) prop;
        } catch (Exception ignored) {/*Could probably be a ClassCastException*/}
        super.addTab(title,
                     doPaintCloseIcon ? new CloseTabIcon(extraIcon) : null,
                     component);
        if (headerViewport == null) {
          for (Component c : getComponents()) {
            if ("TabbedPane.scrollableViewport".equals(c.getName()))
              headerViewport = (JViewport) c;
       * Invoked when the mouse button has been clicked (pressed and released) on
       * a component.
       * @param e the <code>MouseEvent</code>
      public void mouseClicked(MouseEvent e) {
        processMouseEvents(e);
       * Invoked when the mouse enters a component.
       * @param e the <code>MouseEvent</code>
      public void mouseEntered(MouseEvent e) { }
       * Invoked when the mouse exits a component.
       * @param e the <code>MouseEvent</code>
      public void mouseExited(MouseEvent e) {
        for (int i=0; i<getTabCount(); i++) {
          CloseTabIcon icon = (CloseTabIcon) getIconAt(i);
          if (icon != null)
            icon.mouseover = false;
        repaint();
       * Invoked when a mouse button has been pressed on a component.
       * @param e the <code>MouseEvent</code>
      public void mousePressed(MouseEvent e) {
        processMouseEvents(e);
       * Invoked when a mouse button has been released on a component.
       * @param e the <code>MouseEvent</code>
      public void mouseReleased(MouseEvent e) { }
       * Invoked when a mouse button is pressed on a component and then dragged.
       * <code>MOUSE_DRAGGED</code> events will continue to be delivered to the
       * component where the drag originated until the mouse button is released
       * (regardless of whether the mouse position is within the bounds of the
       * component).<br/>
       * <br/>
       * Due to platform-dependent Drag&Drop implementations,
       * <code>MOUSE_DRAGGED</code> events may not be delivered during a native
       * Drag&Drop operation.
       * @param e the <code>MouseEvent</code>
      public void mouseDragged(MouseEvent e) {
        processMouseEvents(e);
       * Invoked when the mouse cursor has been moved onto a component but no
       * buttons have been pushed.
       * @param e the <code>MouseEvent</code>
      public void mouseMoved(MouseEvent e) {
        processMouseEvents(e);
       * Processes all caught <code>MouseEvent</code>s.
       * @param e the <code>MouseEvent</code>
      private void processMouseEvents(MouseEvent e) {
        int tabNumber = getUI().tabForCoordinate(this, e.getX(), e.getY());
        if (tabNumber < 0) return;
        CloseTabIcon icon = (CloseTabIcon) getIconAt(tabNumber);
        if (icon != null) {
          Rectangle rect= icon.getBounds();
          Point pos = headerViewport == null ?
                      new Point() : headerViewport.getViewPosition();
          Rectangle drawRect = new Rectangle(
            rect.x - pos.x, rect.y - pos.y, rect.width, rect.height);
          if (e.getID() == e.MOUSE_PRESSED) {
            icon.mousepressed = e.getModifiers() == e.BUTTON1_MASK;
            repaint(drawRect);
          } else if (e.getID() == e.MOUSE_MOVED || e.getID() == e.MOUSE_DRAGGED ||
                     e.getID() == e.MOUSE_CLICKED) {
            pos.x += e.getX();
            pos.y += e.getY();
            if (rect.contains(pos)) {
              if (e.getID() == e.MOUSE_CLICKED) {
                int selIndex = getSelectedIndex();
                if (fireCloseTab(selIndex)) {
                  if (selIndex > 0) {
                    // to prevent uncatchable null-pointers
                    Rectangle rec = getUI().getTabBounds(this, selIndex - 1);
                    MouseEvent event = new MouseEvent((Component) e.getSource(),
                                                      e.getID() + 1,
                                                      System.currentTimeMillis(),
                                                      e.getModifiers(),
                                                      rec.x,
                                                      rec.y,
                                                      e.getClickCount(),
                                                      e.isPopupTrigger(),
                                                      e.getButton());
                    dispatchEvent(event);
                  //the tab is being closed
                  //removeTabAt(tabNumber);
                  remove(selIndex);
                } else {
                  icon.mouseover = false;
                  icon.mousepressed = false;
                  repaint(drawRect);
              } else {
                icon.mouseover = true;
                icon.mousepressed = e.getModifiers() == e.BUTTON1_MASK;
            } else {
              icon.mouseover = false;
            repaint(drawRect);
       * Adds an <code>CloseableTabbedPaneListener</code> to the tabbedpane.
       * @param l the <code>CloseableTabbedPaneListener</code> to be added
      public void addCloseableTabbedPaneListener(CloseableTabbedPaneListener l) {
        listenerList.add(CloseableTabbedPaneListener.class, l);
       * Removes an <code>CloseableTabbedPaneListener</code> from the tabbedpane.
       * @param l the listener to be removed
      public void removeCloseableTabbedPaneListener(CloseableTabbedPaneListener l) {
        listenerList.remove(CloseableTabbedPaneListener.class, l);
       * Returns an array of all the <code>SearchListener</code>s added to this
       * <code>SearchPane</code> with addSearchListener().
       * @return all of the <code>SearchListener</code>s added or an empty array if
       * no listeners have been added
      public CloseableTabbedPaneListener[] getCloseableTabbedPaneListener() {
        return listenerList.getListeners(CloseableTabbedPaneListener.class);
       * Notifies all listeners that have registered interest for notification on
       * this event type.
       * @param tabIndexToClose the index of the tab which should be closed
       * @return true if the tab can be closed, false otherwise
      protected boolean fireCloseTab(int tabIndexToClose) {
        boolean closeit = true;
        // Guaranteed to return a non-null array
        Object[] listeners = listenerList.getListenerList();
        for (Object i : listeners) {
          if (i instanceof CloseableTabbedPaneListener) {
            if (!((CloseableTabbedPaneListener) i).closeTab(tabIndexToClose)) {
              closeit = false;
              break;
        return closeit;
       * The class which generates the 'X' icon for the tabs. The constructor
       * accepts an icon which is extra to the 'X' icon, so you can have tabs
       * like in JBuilder. This value is null if no extra icon is required.
      class CloseTabIcon implements Icon {
         * the x position of the icon
        private int x_pos;
         * the y position of the icon
        private int y_pos;
         * the width the icon
        private int width;
         * the height the icon
        private int height;
         * the additional fileicon
        private Icon fileIcon;
         * true whether the mouse is over this icon, false otherwise
        private boolean mouseover = false;
         * true whether the mouse is pressed on this icon, false otherwise
        private boolean mousepressed = false;
         * Creates a new instance of <code>CloseTabIcon</code>
         * @param fileIcon the additional fileicon, if there is one set
        public CloseTabIcon(Icon fileIcon) {
          this.fileIcon = fileIcon;
          width  = 16;
          height = 16;
         * Draw the icon at the specified location. Icon implementations may use the
         * Component argument to get properties useful for painting, e.g. the
         * foreground or background color.
         * @param c the component which the icon belongs to
         * @param g the graphic object to draw on
         * @param x the upper left point of the icon in the x direction
         * @param y the upper left point of the icon in the y direction
        public void paintIcon(Component c, Graphics g, int x, int y) {
          boolean doPaintCloseIcon = true;
          try {
            // JComponent.putClientProperty("isClosable", new Boolean(false));
            JTabbedPane tabbedpane = (JTabbedPane) c;
            int tabNumber = tabbedpane.getUI().tabForCoordinate(tabbedpane, x, y);
            JComponent curPanel = (JComponent) tabbedpane.getComponentAt(tabNumber);
            Object prop = null;
            if ((prop = curPanel.getClientProperty("isClosable")) != null) {
              doPaintCloseIcon = (Boolean) prop;
          } catch (Exception ignored) {/*Could probably be a ClassCastException*/}
          if (doPaintCloseIcon) {
            x_pos = x;
            y_pos = y;
            int y_p = y + 1;
            if (normalCloseIcon != null && !mouseover) {
              normalCloseIcon.paintIcon(c, g, x, y_p);
            } else if (hooverCloseIcon != null && mouseover && !mousepressed) {
              hooverCloseIcon.paintIcon(c, g, x, y_p);
            } else if (pressedCloseIcon != null && mousepressed) {
              pressedCloseIcon.paintIcon(c, g, x, y_p);
            } else {
              y_p++;
              Color col = g.getColor();
              if (mousepressed && mouseover) {
                g.setColor(Color.WHITE);
                g.fillRect(x+1, y_p, 12, 13);
              g.setColor(Color.black);
              g.drawLine(x+1, y_p, x+12, y_p);
              g.drawLine(x+1, y_p+13, x+12, y_p+13);
              g.drawLine(x, y_p+1, x, y_p+12);
              g.drawLine(x+13, y_p+1, x+13, y_p+12);
              g.drawLine(x+3, y_p+3, x+10, y_p+10);
              if (mouseover)
                g.setColor(Color.GRAY);
              g.drawLine(x+3, y_p+4, x+9, y_p+10);
              g.drawLine(x+4, y_p+3, x+10, y_p+9);
              g.drawLine(x+10, y_p+3, x+3, y_p+10);
              g.drawLine(x+10, y_p+4, x+4, y_p+10);
              g.drawLine(x+9, y_p+3, x+3, y_p+9);
              g.setColor(col);
              if (fileIcon != null) {
                fileIcon.paintIcon(c, g, x+width, y_p);
         * Returns the icon's width.
         * @return an int specifying the fixed width of the icon.
        public int getIconWidth() {
          return width + (fileIcon != null ? fileIcon.getIconWidth() : 0);
         * Returns the icon's height.
         * @return an int specifying the fixed height of the icon.
        public int getIconHeight() {
          return height;
         * Gets the bounds of this icon in the form of a <code>Rectangle<code>
         * object. The bounds specify this icon's width, height, and location
         * relative to its parent.
         * @return a rectangle indicating this icon's bounds
        public Rectangle getBounds() {
          return new Rectangle(x_pos, y_pos, width, height);
       * A specific <code>BasicTabbedPaneUI</code>.
      class CloseableTabbedPaneUI extends BasicTabbedPaneUI {
        * the horizontal position of the text
        private int horizontalTextPosition = SwingUtilities.LEFT;
         * Creates a new instance of <code>CloseableTabbedPaneUI</code>
        public CloseableTabbedPaneUI() {
         * Creates a new instance of <code>CloseableTabbedPaneUI</code>
         * @param horizontalTextPosition the horizontal position of the text (e.g.
         * SwingUtilities.TRAILING or SwingUtilities.LEFT)
        public CloseableTabbedPaneUI(int horizontalTextPosition) {
          this.horizontalTextPosition = horizontalTextPosition;
         * Layouts the label
         * @param tabPlacement the placement of the tabs
         * @param metrics the font metrics
         * @param tabIndex the index of the tab
         * @param title the title of the tab
         * @param icon the icon of the tab
         * @param tabRect the tab boundaries
         * @param iconRect the icon boundaries
         * @param textRect the text boundaries
         * @param isSelected true whether the tab is selected, false otherwise
        protected void layoutLabel(int tabPlacement, FontMetrics metrics,
                                   int tabIndex, String title, Icon icon,
                                   Rectangle tabRect, Rectangle iconRect,
                                   Rectangle textRect, boolean isSelected) {
          textRect.x = textRect.y = iconRect.x = iconRect.y = 0;
          javax.swing.text.View v = getTextViewForTab(tabIndex);
          if (v != null) {
            tabPane.putClientProperty("html", v);
          SwingUtilities.layoutCompoundLabel((JComponent) tabPane,
                                             metrics, title, icon,
                                             SwingUtilities.CENTER,
                                             SwingUtilities.CENTER,
                                             SwingUtilities.CENTER,
                                             //SwingUtilities.TRAILING,
                                             horizontalTextPosition,
                                             tabRect,
                                             iconRect,
                                             textRect,
                                             textIconGap + 2);
          tabPane.putClientProperty("html", null);
          int xNudge = getTabLabelShiftX(tabPlacement, tabIndex, isSelected);
          int yNudge = getTabLabelShiftY(tabPlacement, tabIndex, isSelected);
          iconRect.x += xNudge;
          iconRect.y += yNudge;
          textRect.x += xNudge;
          textRect.y += yNudge;
       * A specific <code>MetalTabbedPaneUI</code>.
      class CloseableMetalTabbedPaneUI extends MetalTabbedPaneUI {
        * the horizontal position of the text
        private int horizontalTextPosition = SwingUtilities.LEFT;
         * Creates a new instance of <code>CloseableMetalTabbedPaneUI</code>
        public CloseableMetalTabbedPaneUI() {
         * Creates a new instance of <code>CloseableMetalTabbedPaneUI</code>
         * @param horizontalTextPosition the horizontal position of the text (e.g.
         * SwingUtilities.TRAILING or SwingUtilities.LEFT)
        public CloseableMetalTabbedPaneUI(int horizontalTextPosition) {
          this.horizontalTextPosition = horizontalTextPosition;
         * Layouts the label
         * @param tabPlacement the placement of the tabs
         * @param metrics the font metrics
         * @param tabIndex the index of the tab
         * @param title the title of the tab
         * @param icon the icon of the tab
         * @param tabRect the tab boundaries
         * @param iconRect the icon boundaries
         * @param textRect the text boundaries
         * @param isSelected true whether the tab is selected, false otherwise
        protected void layoutLabel(int tabPlacement, FontMetrics metrics,
                                   int tabIndex, String title, Icon icon,
                                   Rectangle tabRect, Rectangle iconRect,
                                   Rectangle textRect, boolean isSelected) {
          textRect.x = textRect.y = iconRect.x = iconRect.y = 0;
          javax.swing.text.View v = getTextViewForTab(tabIndex);
          if (v != null) {
            tabPane.putClientProperty("html", v);
          SwingUtilities.layoutCompoundLabel((JComponent) tabPane,
                                             metrics, title, icon,
                                             SwingUtilities.CENTER,
                                             SwingUtilities.CENTER,
                                             SwingUtilities.CENTER,
                                             //SwingUtilities.TRAILING,
                                             horizontalTextPosition,
                                             tabRect,
                                             iconRect,
                                             textRect,
                                             textIconGap + 2);
          tabPane.putClientProperty("html", null);
          int xNudge = getTabLabelShiftX(tabPlacement, tabIndex, isSelected);
          int yNudge = getTabLabelShiftY(tabPlacement, tabIndex, isSelected);
          iconRect.x += xNudge;
          iconRect.y += yNudge;
          textRect.x += xNudge;
          textRect.y += yNudge;
    }The Listener:
    import java.util.EventListener;
    * The listener that's notified when an tab should be closed in the
    * <code>CloseableTabbedPane</code>.
    public interface CloseableTabbedPaneListener extends EventListener {
       * Informs all <code>CloseableTabbedPaneListener</code>s when a tab should be
       * closed
       * @param tabIndexToClose the index of the tab which should be closed
       * @return true if the tab can be closed, false otherwise
      boolean closeTab(int tabIndexToClose);
    }

  • Popup Dialog boxes in Extensions

    I am building an extension that allows our company to insert a CFINVOKE tag for a ColdFusion component with all of the proper arguments. One of the arguments for the component is an array of address information that looks like so in CF:
    <cfset AddressArray = ArrayNew(2)>
    <cfset AddressArray [1][1] = "XYZ Widget">
    <cfset AddressArray [1][2] = "123 Somewhere St">
    <cfset AddressArray [1][3] = "Nowherevilleton">
    <cfset AddressArray [1][4] = "AA">
    <cfset AddressArray [1][5] = "55555">
    <cfset AddressArray [1][6] = "555-555-5555">
    <cfset AddressArray [1][7] = "http ://goo.gl/rTyhf45">
    This array can include multiple addresses. Too add a second address simply increment the first array index number from one to 2 and repeat the structure.
    My extension needs to be able to create a multidimensional array in JS that is based off a form.
    The primary form for the extension holds form fields for the other component arguments which consits of checkboxes and text fields and one textarea.
    The textarea needs to be populated via a second form that appears when the user clicks on the "Add Address" button which should create a second dialog box with a simple form of text fields for the name, adddres, city, state, zip, phone, and url that are need by the CF array.
    What I cannot figure out how to do is create this second dialog box. I have the following JS in place but it throws an error (openDialog() is not a function)
    function addAddress() {
        var retVals = {name: null, address: null, city: null, state: null, zip: null, phone: null, url: null};
        window.openDialog("MapAddress.htm","", "all=no", retVals);
    I tried window.open() but that just opens my browser. MapAddress.htm is the file that contains the second form.
    All I need to know is how do I create a second dialog box from inside an extension, or is this even possible?

    Hi,
    You can open another form, but you have to pass parameters between windows (that is, your .htm files with your forms). Look at native extensions like C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS6\configuration\Commands\ServerObject-MastDetailPHP.htm for instance, and the dwscripts.callCommand() function in C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS4\configuration\Shared\Common\Scripts\dwscripts.js for an undocumented way of doing it.
    But the simpliest way is to have two layers in your form and hide and display them according to your needs with some JavaScript like this:
    var layer = dwscripts.findDOMObject('mylayername');
    layer.style.visibility = "hidden";
    or
    layer.style.visibility = "visible";
    Regards,
    Xavier
    MyDreamweaverExtensions.com

  • JSF + Tomahawk component NullPointerException

    Hi All,
    I made a sun JSF portlet by using the tomahawk 1.1.3 file upload component. The bean "UploadedFile myFile" is not getting set in the "MyBean.java" file. I get a java.lang.NullPointerException when I am trying to myFile.getName() or myFile.getInputStream().
    The inputFileUpload method should set the myFile Bean but it seems like its not getting set
    1
    2 <t:inputFileUpload id="myFileId"
    3            value="#{myBean.myFile}"
    4 storage="file"
    5 required="true"/>
    6 <h:message for="myFileId"/>
    I am attaching the whole code below
    Can somebody please help me. I have tried various versions of tomahawk and still not able to figure out the problem.
    I am using JSF 1.1.0 and tomahawk 1.1.3
    Please let me know if you need some more information from me
    1
      2======== index.jsp ==============
      3
      4<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
      5<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
      6<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
      7
      8<f:view>
      9
    10<h:form id="MyForm" enctype="multipart/form-data" >
    11
    12    <h:messages globalOnly="true" styleClass="message"/>
    13
    14    <h:panelGrid columns="3" border="0" cellspacing="5">
    15
    16        <h:outputLabel for="myFileId" value="File: "/>
    17        <t:inputFileUpload id="myFileId"
    18            value="#{myBean.myFile}"
    19            storage="file"
    20            required="true"/>
    21        <h:message for="myFileId"/>
    22
    23        <h:outputLabel for="myParamId" value="Param: "/>
    24        <h:selectOneMenu id="myParamId"
    25                value="#{myBean.myParam}"
    26                required="true">
    27            <f:selectItem itemLabel="" itemValue=""/>
    28            <f:selectItem itemLabel="MD5" itemValue="MD5"/>
    29            <f:selectItem itemLabel="SHA-1" itemValue="SHA-1"/>
    30            <f:selectItem itemLabel="SHA-256" itemValue="SHA-256"/>
    31            <f:selectItem itemLabel="SHA-384" itemValue="SHA-384"/>
    32            <f:selectItem itemLabel="SHA-512" itemValue="SHA-512"/>
    33        </h:selectOneMenu>
    34        <h:message for="myParamId"/>
    35
    36        <h:outputText value=" "/>
    37        <h:commandButton value="Submit"
    38            action="#{myBean.processMyFile}"/>
    39        <h:outputText value=" "/>
    40
    41    </h:panelGrid>
    42
    43</h:form>
    44
    45</f:view>
    46
    47
    48==========  MyBean.java ==============
    49
    50<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    51<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    52<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
    53
    54<f:view>
    55
    56<h:form id="MyForm" enctype="multipart/form-data" >
    57
    58    <h:messages globalOnly="true" styleClass="message"/>
    59
    60    <h:panelGrid columns="3" border="0" cellspacing="5">
    61
    62        <h:outputLabel for="myFileId" value="File: "/>
    63        <t:inputFileUpload id="myFileId"
    64            value="#{myBean.myFile}"
    65            storage="file"
    66            required="true"/>
    67        <h:message for="myFileId"/>
    68
    69        <h:outputLabel for="myParamId" value="Param: "/>
    70        <h:selectOneMenu id="myParamId"
    71                value="#{myBean.myParam}"
    72                required="true">
    73            <f:selectItem itemLabel="" itemValue=""/>
    74            <f:selectItem itemLabel="MD5" itemValue="MD5"/>
    75            <f:selectItem itemLabel="SHA-1" itemValue="SHA-1"/>
    76            <f:selectItem itemLabel="SHA-256" itemValue="SHA-256"/>
    77            <f:selectItem itemLabel="SHA-384" itemValue="SHA-384"/>
    78            <f:selectItem itemLabel="SHA-512" itemValue="SHA-512"/>
    79        </h:selectOneMenu>
    80        <h:message for="myParamId"/>
    81
    82        <h:outputText value=" "/>
    83        <h:commandButton value="Submit"
    84            action="#{myBean.processMyFile}"/>
    85        <h:outputText value=" "/>
    86
    87    </h:panelGrid>
    88
    89</h:form>
    90
    91</f:view>
    92
    93
    94=========== faces-config.xml ==========
    95
    96<?xml version="1.0"?>
    97<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    98
    99<faces-config xmlns="http://java.sun.com/JSF/Configuration">
    100    <managed-bean>
    101        <managed-bean-name>user</managed-bean-name>
    102        <managed-bean-class>com.sample.jsfsun.bean.UserBean</managed-bean-class>
    103        <managed-bean-scope>session</managed-bean-scope>
    104    </managed-bean>
    105    <managed-bean>
    106        <managed-bean-name>myBean</managed-bean-name>
    107        <managed-bean-class>com.sample.jsfsun.bean.MyBean</managed-bean-class>
    108        <managed-bean-scope>request</managed-bean-scope>
    109    </managed-bean>
    110    <navigation-rule>
    111        <from-view-id>/index.jsp</from-view-id>
    112        <navigation-case>
    113            <from-outcome>submit</from-outcome>
    114            <to-view-id>/welcome.jsp</to-view-id>
    115        </navigation-case>
    116    </navigation-rule>
    117    <navigation-rule>
    118        <from-view-id>/welcome.jsp</from-view-id>
    119        <navigation-case>
    120            <from-outcome>back</from-outcome>
    121            <to-view-id>/index.jsp</to-view-id>
    122        </navigation-case>
    123    </navigation-rule>
    124</faces-config>
    125
    126============= web.xml =============
    127
    128
    129<?xml version="1.0"?>
    130<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    131
    132<web-app>
    133    <display-name>friend_info_portlet</display-name>
    134    <context-param>
    135        <param-name>company_id</param-name>
    136        <param-value>liferay.com</param-value>
    137    </context-param>
    138    <context-param>
    139        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    140        <param-value>client</param-value>
    141    </context-param>
    142    <context-param>
    143        <param-name>javax.faces.application.CONFIG_FILES</param-name>
    144        <param-value>/WEB-INF/faces-config.xml</param-value>
    145    </context-param>
    146    <context-param>
    147        <param-name>com.sun.faces.validateXml</param-name>
    148        <param-value>false</param-value>
    149    </context-param>
    150    <filter>
    151        <filter-name>ExtensionsFilter</filter-name>
    152        <filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
    153        <init-param>
    154            <param-name>uploadMaxFileSize</param-name>
    155            <param-value>10m</param-value>
    156        </init-param>
    157        <init-param>
    158            <param-name>uploadThresholdSize</param-name>
    159            <param-value>100k</param-value>
    160        </init-param>
    161    </filter>
    162    <filter-mapping>
    163        <filter-name>ExtensionsFilter</filter-name>
    164        <servlet-name>Faces Servlet</servlet-name>
    165    </filter-mapping>
    166    <filter-mapping>
    167        <filter-name>ExtensionsFilter</filter-name>
    168        <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
    169    </filter-mapping>
    170    <filter-mapping>
    171        <filter-name>ExtensionsFilter</filter-name>
    172        <url-pattern>*.jsf</url-pattern>
    173    </filter-mapping>
    174    <listener>
    175        <listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class>
    176    </listener>
    177    <listener>
    178        <listener-class>com.liferay.util.jsf.sun.faces.config.LiferayConfigureListener</listener-class>
    179    </listener>
    180    <servlet>
    181        <servlet-name>friend_info_portlet</servlet-name>
    182        <servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
    183        <init-param>
    184            <param-name>portlet-class</param-name>
    185            <param-value>com.sun.faces.portlet.FacesPortlet</param-value>
    186        </init-param>
    187        <load-on-startup>0</load-on-startup>
    188    </servlet>
    189    <servlet>
    190        <servlet-name>Faces Servlet</servlet-name>
    191        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    192        <load-on-startup>1</load-on-startup>
    193    </servlet>
    194    <servlet-mapping>
    195        <servlet-name>friend_info_portlet</servlet-name>
    196        <url-pattern>/friend_info_portlet/*</url-pattern>
    197    </servlet-mapping>
    198    <servlet-mapping>
    199        <servlet-name>Faces Servlet</servlet-name>
    200        <url-pattern>/faces/*</url-pattern>
    201    </servlet-mapping>
    202    <servlet-mapping>
    203        <servlet-name>Faces Servlet</servlet-name>
    204        <url-pattern>*.faces</url-pattern>
    205    </servlet-mapping>
    206    <welcome-file-list>
    207        <welcome-file>index.jsp</welcome-file>
    208    </welcome-file-list>
    209    <taglib>
    210        <taglib-uri>http://java.sun.com/portlet</taglib-uri>
    211        <taglib-location>/WEB-INF/tld/liferay-portlet.tld</taglib-location>
    212    </taglib>
    213</web-app>

    jabalsad wrote:
    contents of /WEB-INF/lib
    jsf-api.jar
    jsf-impl.jar
    myfaces-api-1.2.7.jar
    myfaces-impl-1.2.7.jar
    You cannot mix differnet JSF implementations. Use the one or the other.
    As you stated that you're "using" Mojarra, get rid of those myfaces jars.

  • Component MethodBinding NullPointerException

    Hey everybody.. this is an issue that has been giving me problems for a while now, and I haven't been able to figure it out. I've created a menu bar component which I use in this fashion in my pages:
    <or:menuBar pageClass="#{menuBarBean.PAGECLASS_HOME}" msg="#{menuBarBean.numQuestionsMessage}" />In my renderer for this component, I have set up HtmlCommandLinks which are supposed to invoke navigation methods in my MenuBarBean. The problem is, whenever I click on one of the links, a NullPointerException is thrown in my renderer's encodeEnd method.
    All the piping seems to be working for the tag and the component.. meaning the "pageClass" and "msg" attributes get set and rendered properly on the menuBar. Also the thing renders correctly, but I have a feeling that I'm not setting the MethodBinding correctly for the "Action" property of the CommandLink, or I'm not setting it in the right place. Here's an abbreviated version of the code behind the component:
    In my 'MenuBar.java' class:
    public void setHomeBinding(MethodBinding mb)
    { homeBinding = mb; }
    public MethodBinding getHomeBinding()
    { return homeBinding; }In the 'setProperties' method of my 'MenuBarTag.java' class:
    MethodBinding mb = getFacesContext().getApplication().createMethodBinding("#{menuBarBean.gotoHome}", null);
    menuBar.setHomeBinding(mb);In the 'encodeEnd' method of 'MenuBarRenderer.java' (Here's where I create the link and set the Action to the MethodBinding)
    // If is this class, show a selected tab
    if(menuBar.getPageClass().equals(MenuBarBean.PAGECLASS_HOME))
         HtmlGraphicImage homeButton = (HtmlGraphicImage)application.createComponent(HtmlGraphicImage.COMPONENT_TYPE);
         homeButton.setUrl(IMG_HOME_SRC_SELECTED);
         menuBar.getChildren().add(homeButton);
    // else Render the button
    else
         HtmlSwapImage homeSwapImg = (HtmlSwapImage)application.createComponent(HtmlSwapImage.COMPONENT_TYPE);
         homeSwapImg.setUrl(IMG_HOME_SRC_IDLE);
         homeSwapImg.setSwapImageUrl(IMG_HOME_SRC_OVER);
         homeSwapImg.setStyleClass("menuBarButton");
         HtmlCommandLink homeButton = (HtmlCommandLink)application.createComponent(HtmlCommandLink.COMPONENT_TYPE);
         homeButton.setAction(menuBar.getHomeBinding());
         homeButton.getChildren().add(homeSwapImg);
         menuBar.getChildren().add(homeButton);
    menuBar.getChildren().add(spacer);
    RendererUtils.renderChildren(facesContext, menuBar);
    menuBar.getChildren().removeAll(menuBar.getChildren());And finally, in my MenuBar backing bean 'MenuBarBean.java'
    public String gotoHome()
    { return("goto-home"); }
    public String getPAGECLASS_HOME()
    { return PAGECLASS_HOME; }Now, like I said.. The appearance of the whole thing renders properly, image swapping and all. Just that whenever you click on one of the buttons, I get an execption, and a stack trace that looks sorta like:
    ERROR[jsp]:704 - Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
        at packageName.MenuBarRenderer.encodeEnd(MenuBarRenderer.java:173)
        at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
        at javax.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
        at javax.faces.webapp.UIComponnetTag.doEndTag(UIComponentTag.java:253)
    .Anybody have any suggestions, or see any glaring problems in my coding? Any help would be much appreciated. Thanks!

    Sure.. this snippet starts at 173:
    if(!(menuBar.getMsg().equals(null)))
         writer.startElement(HTML.SPAN_ELEM, menuBar);
              writer.writeAttribute(HTML.CLASS_ATTR, "msgText", null);
              writer.write(menuBar.getMsg());
         writer.endElement(HTML.SPAN_ELEM);
    }The thing is, this section of code works normally. It only throws an exception when I click on a link.

  • Passing arguments to a custom component in the constructor

    I would like to know if it is possible to pass arguments to a
    custom component in the constructor when I'm instantiating it
    within Actionscript. I've not seen anyone do this, so at the moment
    I have a couple of public properties defined on the custom
    component and then do the following:
    var myComponent:TestComponent = new TestComponent();
    myComponent.propertyOne = true;
    myComponent.propertyTwo = 12;
    etc.
    Whereas I'd like to do something like:
    var myComponent:TestComponent = new TestComponent( true, 12
    Any ideas if this is possible?

    Another approach as opposed to creating init function is to link symbol with autogenerated class (just assign it a class but do not create *.as file for it) and use it just as graphical view with no functionality (well only MovieClip's functionality).
    ViewClip.as
    public class ViewClip extends MovieClip {
        public var view:MovieClip;
        public function ViewClip(){
            this.view = instantiateView();
            this.addChild(view);
        protected function instantiateView():MovieClip {
            return new MovieClip();
    Circle.as
    public class Circle extends ViewClip {
        public function Circle(scaleX:Number, scaleY:Number) {
            super();
        override protected function instantiateView():MovieClip {
            return new ClassView();

  • JDeveloper NullPointerException at View Component Palette

    Hi everybody...
    The JDeveloper 9.0.3 is throwing an exception when I try to view the Component palette from the main menu or Ctrl+Shift+P command.
    The exception is as following:
    java.lang.NullPointerException
         void oracle.ideimpl.palette.PaletteImpl.populate()
              PaletteImpl.java:240
         void oracle.ideimpl.palette.PaletteWindowImpl.checkIfPopulated()
              PaletteWindowImpl.java:323
         void oracle.ideimpl.palette.PaletteWindowImpl.show()
              PaletteWindowImpl.java:364
         boolean oracle.ideimpl.palette.PaletteManagerImpl.handleEvent(oracle.ide.IdeAction, oracle.ide.addin.Context)
              PaletteManagerImpl.java:174
         void oracle.ide.IdeAction$1.run()
              IdeAction.java:579
         void java.awt.event.InvocationEvent.dispatch()
              InvocationEvent.java:154
         void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
              EventQueue.java:337
         boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
              EventDispatchThread.java:131
         void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
              EventDispatchThread.java:98
         void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
              EventDispatchThread.java:93
         void java.awt.EventDispatchThread.run()
              EventDispatchThread.java:85
    Thanks
    What can I do to fix it?
    Rafael

    BUMP
    Just wanted to inform that I ran into the same problem. Derek's solution solved my problem. I noticed that before applying this fix my own palette.xml was 0 bytes in size.
    Using JDev 9.0.3.3 on a W2K3 TS.

Maybe you are looking for