Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] SWT - X Window System error Crash on Solaris (Sparc) 10u8 GTK / SWT 3.6.2 / JRE 1.6u24

Just to provide more info.  

I've tried this on a Solaris 10u8 (x86) Virtual machine with JDK 1.6u23 and
1.6u24 and SWT 3.6.2 GTK and am able to reproduce the issue.

Any help or suggestions is appreciated.

Thanks

> -----Original Message-----
> From: J- MAN [mailto:jmandawg@xxxxxxxxxxx]
> Sent: Friday, April 15, 2011 5:30 PM
> To: platform-swt-dev@xxxxxxxxxxx
> Subject: SWT - X Window System error Crash on Solaris (Sparc) 10u8 GTK /
SWT
> 3.6.2 / JRE 1.6u24
> 
> 
> Can anyone please tell me why this is crashing?  I've spent all day trying
to
> figure this out.
> It runs fine on windows.
> 
> This is the simplest example i could get to crash everytime.
> 
> I've testing on both JRE 1.6u23 and 1.6u24.
> SWT 3.6.2 (Solaris SPARC GTK)
> Solaris Sparc 10u8
> 
> Here is the error:
> 
> The program 'SWT' received an X Window System error.
> This probably reflects a bug in the program.
> The error was 'BadMatch (invalid parameter attributes)'.
>   (Details: serial 653 error_code 8 request_code 129 minor_code 4)
>   (Note to programmers: normally, X errors are reported asynchronously;
>    that is, you will receive the error a while after causing it.
>    To debug your program, run it with the --sync command line
>    option to change this behavior. You can then get a meaningful
>    backtrace from your debugger if you break on the gdk_x_error()
function.)
> 
> 
> Here is the code that reproduces it every time, just click OK on the
> JOptionPane pop-up and it will crash.
> What's really weird is if i delete these 3 lines:
> 
> 
>             message += "Select OK to continue, ";
>             message += "Cancel to terminate client application.\n";
>             message += "\n";
> 
> it won't crash, so i'm guessing something is clobbering someone elses
memory
> space.
> Anyways here's the full source:
> 
> To compile:  javac -cp swt.jar CrashApp.java
> To run: java -cp ./:swt.jar CrashApp
> 
> --------------------------START
CODE---------------------------------------
> 
> import java.awt.FlowLayout;
> import java.awt.GridBagConstraints;
> import java.awt.GridBagLayout;
> import java.awt.Insets;
> 
> import javax.swing.JOptionPane;
> import javax.swing.JPanel;
> import javax.swing.SwingUtilities;
> 
> import org.eclipse.swt.widgets.Display;
> 
> 
> public class CrashApp extends javax.swing.JFrame
> {
>     public boolean            reloadListFlag = false;
>     private Object[]          useridData = null;
> 
>     public CrashApp()
>     {
>         System.out.println("-------------------------------------------");
> 
> 
>         setResizable(false);
>         setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
>         getContentPane().setLayout(new GridBagLayout());
>         setSize(405,305);
>         setVisible(false);
>         mainPanel.setBorder(emptyBorder1);
>         mainPanel.setLayout(new GridBagLayout());
> 
>         getContentPane().add(mainPanel, new GridBagConstraints(-1,-
> 1,1,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new
> Insets(0,0,0,0),0,0));
> 
>         mainPanel.setBounds(22,25,361,255);
>         mainLabel.setText("Please enter your User ID, Personal Name and
> Password");
>         mainPanel.add(mainLabel, new
>
GridBagConstraints(0,0,2,1,1.0,1.0,GridBagConstraints.CENTER,GridBagConstrai
nt
> s.NONE,new Insets(0,0,10,0),0,0));
>         mainLabel.setBounds(19,5,322,15);
>         useridLabel.setText("User ID");
>         mainPanel.add(useridLabel, new
>
GridBagConstraints(0,1,1,1,1.0,1.0,GridBagConstraints.EAST,GridBagConstraint
s.
> NONE,new Insets(0,0,5,5),0,0));
>         useridLabel.setBounds(51,88,41,15);
>         useridScrollPane.setOpaque(true);
>         mainPanel.add(useridScrollPane, new
>
GridBagConstraints(1,1,1,1,1.0,1.0,GridBagConstraints.WEST,GridBagConstraint
s.
> NONE,new Insets(0,0,5,0),0,0));
>         useridScrollPane.setBounds(97,30,259,131);
> 
>
useridList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION)
;
>         useridScrollPane.getViewport().add(useridList);
>         useridList.setBounds(0,0,256,128);
>         personalNameLabel.setText("Personal Name");
>         mainPanel.add(personalNameLabel, new
>
GridBagConstraints(0,2,1,1,1.0,1.0,GridBagConstraints.EAST,GridBagConstraint
s.
> NONE,new Insets(0,0,5,5),0,0));
>         personalNameLabel.setBounds(5,168,87,15);
>         mainPanel.add(personalNameTextField, new
>
GridBagConstraints(1,2,1,1,1.0,1.0,GridBagConstraints.WEST,GridBagConstraint
s.
> NONE,new Insets(0,0,5,0),0,0));
>         personalNameTextField.setBounds(97,166,4,19);
>         passwordLabel.setText("Password");
>         mainPanel.add(passwordLabel, new
>
GridBagConstraints(0,3,1,1,1.0,1.0,GridBagConstraints.EAST,GridBagConstraint
s.
> NONE,new Insets(0,0,10,5),0,0));
>         passwordLabel.setBounds(34,190,58,15);
>         mainPanel.add(passwordField, new
>
GridBagConstraints(1,3,1,1,1.0,1.0,GridBagConstraints.WEST,GridBagConstraint
s.
> NONE,new Insets(0,0,0,0),0,0));
>         passwordField.setBounds(97,193,4,19);
>         buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));
>         mainPanel.add(buttonPanel, new
>
GridBagConstraints(0,4,2,1,1.0,1.0,GridBagConstraints.EAST,GridBagConstraint
s.
> NONE,new Insets(0,0,0,0),0,0));
>         buttonPanel.setBounds(217,215,139,35);
>         okButton.setText("OK");
>         okButton.setActionCommand("OK");
>         buttonPanel.add(okButton);
>         okButton.setBounds(5,5,51,25);
>         cancelButton.setText("Cancel");
>         cancelButton.setActionCommand("Cancel");
>         buttonPanel.add(cancelButton);
>         cancelButton.setBounds(61,5,73,25);
>         helpButton.setText("Help");
>         helpButton.setActionCommand("Help");
>         buttonPanel.add(helpButton);
> 
>
classificationField.setHorizontalAlignment(javax.swing.SwingConstants.CENTER
);
>         classificationField.setEditable(false);
>         classificationField.setBackground(new java.awt.Color(34,139,34));
>         classificationField.setBounds(0,0,20,40);
> 
>         classSCIField.setEditable(false);
> 
>         JPanel classLine = new JPanel(new
FlowLayout(FlowLayout.CENTER,0,0));
>         mainPanel.add(classLine,
>                         new GridBagConstraints(
>                             0,5,2,1,1.0,1.0,
>                             GridBagConstraints.CENTER,
>                             GridBagConstraints.HORIZONTAL,
>                             new Insets(0,0,0,0),0,0));
> 
>         classLine.add(classificationField);
>         classLine.add(classSCIField);
> 
>         useridData = new Object[3];
> 
>         useridData[0] = "jay";
>         useridData[1] = "jay2";
>         useridData[2] = "jay3";
> 
>         useridList.setListData(useridData);
> 
>         if(true){
>             String message = "Client and server versions may be
> incompatible.\n";
>             message += "Select OK to continue, ";
>             message += "Cancel to terminate client application.\n";
>             message += "\n";
>             int choice = JOptionPane.showConfirmDialog(this,
>                 message, "Startup Error", JOptionPane.OK_CANCEL_OPTION);
>             if(choice == JOptionPane.CANCEL_OPTION) System.exit(0);
>         }
> 
>         pack();
> 
>         System.out.println();
>        
System.out.println("---------------------------------------------");
> 
>     }
> 
> 
>     static public void main(String args[])
>     {
>         SwingUtilities.invokeLater(new Runnable()
>         {
>             @Override
>             public void run()
>             {
>                 try
>                 {
>                     new CrashApp().setVisible(true);
>                 }
>                 catch(Exception ex)
>                 {
>                     ex.printStackTrace();
>                 }
>             }
>         });
>         Display display = new Display();
>         System.out.println("Entering SWT Display loop");
>         while (!display.isDisposed()) {
>             if (!display.readAndDispatch()) display.sleep();
>         }
>         System.out.println("SWT Event Thread Killed");
>     }
> 
>     javax.swing.JPanel mainPanel = new javax.swing.JPanel();
>     javax.swing.JLabel mainLabel = new javax.swing.JLabel();
>     javax.swing.JLabel useridLabel = new javax.swing.JLabel();
>     javax.swing.JScrollPane useridScrollPane = new
javax.swing.JScrollPane();
>     javax.swing.JList useridList = new javax.swing.JList();
>     javax.swing.JLabel personalNameLabel = new javax.swing.JLabel();
>     javax.swing.JTextField personalNameTextField = new
> javax.swing.JTextField();
>     javax.swing.JLabel passwordLabel = new javax.swing.JLabel();
>     javax.swing.JPasswordField passwordField = new
> javax.swing.JPasswordField();
>     javax.swing.JPanel buttonPanel = new javax.swing.JPanel();
>     javax.swing.JButton okButton = new javax.swing.JButton();
>     javax.swing.JButton cancelButton = new javax.swing.JButton();
>     javax.swing.JButton helpButton = new javax.swing.JButton();
>     javax.swing.JTextField classificationField = new
javax.swing.JTextField();
>     javax.swing.JTextField classSCIField = new javax.swing.JTextField();
>     javax.swing.border.EmptyBorder emptyBorder1 =
>         new javax.swing.border.EmptyBorder(5,5,5,5);
> 
> }
> 
> --------------------------END CODE---------------------------------------
> 
> 
> 
> 
> 
> 
> 
> 



Back to the top