On Friday 04 August 2006 10:53, Mario Torre wrote:
> Il giorno ven, 04/08/2006 alle 10.13 +1000, Raif S. Naffah ha scritto:
> > On Friday 04 August 2006 09:49, Raif S. Naffah wrote:
> > > On Friday 04 August 2006 09:32, Mario Torre wrote:
> > > > Il giorno ven, 04/08/2006 alle 09.12 +1000, Raif S. Naffah ha scritto:
> > > > > i'm getting a segmentation fault caused by /usr/lib/libgconf-2.so.4
> > > > > (FC5) when trying to run jamvm with Classpath (both CVS Head)...
> > > > > anybody else is seeing this?
> > > >
> > > > Do you have a test case for that?
> > >
> > > here is how i can trigger it:
> > >
> > > import java.util.prefs.Preferences;
> > >
> > > public class Hello {
> > > public static final void main(String[] args) {
> > > Preferences prefs = Preferences.systemNodeForPackage(Hello.class);
> > > int lastSerialNumber = prefs.getInt("LAST_SERIAL_NUMBER", 0) + 1;
> > > prefs.putInt("LAST_SERIAL_NUMBER", lastSerialNumber);
> > > }
> > > }
>
> I can't reproduce.
>
> Moreover, you get a warning if you put this into the default package (it
> does not cause harm), but other than that, it is fine (the warning is
> normal).
>
> Anyway, Can you try the attached patch and see if it works?
i'll do that soon.
> > in addition to the above, when i configure Classpath with
> > --disable-default-preferences-peer, and try to run the same code (as
> > above) i get:
>
> Well, sorry this is my fault, I hope to fix this tomorrow, as I'm not an
> autoconf expert, so I have to look at it in more details (and now I
> really need some sleep).
>
> There should not be any --disable-default-preferences-peer.
>
> The preference flags are intended to use this way:
>
> --disable-gconf-peer: disable the gconf backend
> --enable-default-preferences-peer=gnu.java.util.prefs.FileBasedFactory:
> use another backend, not the default (everything that this default is,
> may also not be gconf).
i'm attaching a patch that fixes this configuration issue.
> This means that you can build the preference backend but with another
> default, or you can totally disable the preference backend.
>
> I guess that --disable-default-preferences-peer should not create any
> key in the META-INF directory.
>
> The correct name for this flag should really be
> --with-default-preferences-peer...
>
> The exceptions are normal, it should revert to a sane default if
> everything else fails. This should be the FileBasedPreferences, can you
> please confirm this? What happened after the error?
as i mentioned earlier a seg fault; i.e. the VM exists.
> Sorry for the confusion, and thanks for pointing me out to this
no worries! thanks for looking into it.
cheers;
rsn
Index: configure.ac
===================================================================
RCS file: /cvsroot/classpath/classpath/configure.ac,v
retrieving revision 1.176
diff -u -r1.176 configure.ac
--- configure.ac 2 Aug 2006 23:28:12 -0000 1.176
+++ configure.ac 4 Aug 2006 01:00:03 -0000
@@ -85,13 +85,15 @@
dnl -----------------------------------------------------------
dnl Default Preference Backend
dnl -----------------------------------------------------------
-AC_ARG_ENABLE(default-preferences-peer,
- AS_HELP_STRING([--enable-default-preferences-peer],
- [fully qualified class name of default Preferences API Backend]))
-DEFAULT_PREFS_PEER=$enable_default_preferences_peer
-if test "$DEFAULT_PREFS_PEER" = ""; then
- DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory
-fi
+AC_ARG_ENABLE([default-preferences-peer],
+ [AS_HELP_STRING([--enable-default-preferences-peer],
+ [fully qualified class name of default Preferences API Backend [default=gnu.java.util.prefs.GConfBasedFactory])])],
+ [case "${enableval}" in
+ yes) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory ;;
+ no) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory ;;
+ *) DEFAULT_PREFS_PEER=${enableval} ;;
+ esac],
+ [DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory])
dnl AC_SUBST(DEFAULT_PREFS_PEER)
dnl -----------------------------------------------------------