Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6635110

GTK problem when testing Sun Studio IDE on snv_77 with jdk1.6 using Gnome window manager

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 7
    • pia, solaris_11
    • client-libs
    • b05
    • 6u3
    • b55
    • x86
    • solaris_nevada

      This bug was found when we were testing Sun Studio IDE on snv_77 with jdk1.6
      using Gnome window manager. It is not reproducible if switch to
      jdk1.5.0_13 (sunstudio --jdkhome /usr/jdk/jdk1.5.0_13)

      There are two issues for this bug:

      1) from the console:

      % /net/guild.sfbay/export/home1/common/shared_dist/sstrunk/build4.4_SXDE/inst/intel-S2/bin/sunstudio --userdir /tmp/1129-ss

      (<unknown>:19201): Gtk-WARNING **: Attempting to add a widget with type
      GtkButton to a GtkComboBoxEntry (need an instance of GtkEntry or of a
      subclass)

      (<unknown>:19201): Gtk-CRITICAL **: file gtkwidget.c: line 3236:
      assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed

      (<unknown>:19201): Gtk-CRITICAL **: file gtkstyle.c: line 5879:
      assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:19201): Gtk-CRITICAL **: file gtkstyle.c: line 5879:
      assertion `style->depth == gdk_drawable_get_depth (window)' failed

      2) from the IDE UI, NPE stack trace and evaluation are in CR 6633364
         Synopsis: NPE on selecting target for D-Light

      While testing Sun Studio IDE (based on NetBeans 6.0)
      for SXDE 1/08 (snv_79) with jdk1.6 in Gnome Window Manager,
      we found out that any extended UI may cause NPE. As a result,
      CR 6633364 (compiler_tools/ide/d-light) was filed and a
      workaround was applied to this problem.

      Subsequently, we filed CR 6635110 (jds/gnome/gtk+),
      in the hope that the root cause of CR 6633364 can be fixed.
      However according to the gtk developer, this is not
      a GTK bug.

      Andrew has done further investigation and it seems that the
      bug is originated from jdk 1.6.

      Evaluation from Andrew:

      Andrew Krasny wrote On 12/12/07 10:57,:

      >> Julie,
      >>
      >> I have spent some time on finding what may be the reason for the problem
      >> and the conclusions are:
      >>
      >> 1. This is a JDK problem.
      >>
      >> In java, developer can put different types of GUI widgets into different
      >> GUI containers. There are some limitations in GTK (like it is prohibited
      >> to add button to ComboBox) that are not taken into consideration when
      >> deal with libgtk (on jdk side)... So, assertion in GTK fails, but jdk
      >> doesn't handle this appropriately and throws NPE...
      >>
      >> 2. On the side of GUI developers (NB/SunStudio) they sometimes don't
      >> handle this NPE. So in some cases we saw such NPEs in NB (now they all
      >> are being caught...)... Solution based on catching these exceptions
      >> could hide the problem, but not fix it...
      >>
      >> I'm not familiar with GTK but I am inclined to think that GTK is good
      >> enough to provide the whole GUI functionality. So ideally this should be
      >> fixed in jdk (either do not allow programmers to do 'wrong' things or,
      >> better, create 'correct' 'binding' between java GUI classes and GTKLib
      >> calls).
      >> So, I think that jdk guys should be responsible for this...
      >>
      >> BTW, *many* other products have these problems and bugs like this... And
      >> all of them propose ether to switch to 1.5 or change L&F as a 'solution' :(
      >>
      >> Thanks,
      >> =Andrew
      I coould reproduce this bug as well simply using firefox and launching some Java apps: we are using WorldServer which contains some explorer applet (see screenshot). Here are the exeptions generated:


      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed

      (<unknown>:2501): Gtk-CRITICAL **: file gtkstyle.c: line 5879: assertion `style->depth == gdk_drawable_get_depth (window)' failed
      /usr/libexec/gecko: Ce fichier ou ce répertoire n'existe pas.
      Backtrace limit of 200 exceeded



      I am using as well the default gnome environment, and my java version is:
      java -version
      java version "1.6.0_03"
      Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
      Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

            stayer Kirill Kirichenko (Inactive)
            jguzzett Julie Guzzetta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: