Discussion:
[platform-swt-dev] SWT 4.8 and CentOS 6.10
Thomas Singer
2018-07-11 06:57:49 UTC
Permalink
Hi,

When launching SmartGit 18.2 which uses SWT 4.8 on a CentOS 6.10 64-bit,
org.eclipse.swt.internal.gtk.OS._cachejvmptr()V
at org.eclipse.swt.internal.gtk.OS._cachejvmptr(Native Method)
at org.eclipse.swt.internal.gtk.OS.cachejvmptr(OS.java:481)
at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:92)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:134)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:80)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:142)
at smartgit.XX.a(SourceFile:62)
at smartgit.asa.a(SourceFile:108)
at com.syntevo.smartgit.q.a(SourceFile:301)
at com.syntevo.smartgit.q.a(SourceFile:246)
at smartgit.asx.a(SourceFile:68)
at com.syntevo.smartgit.SmartGit.main(SourceFile:11)
SmartGit 18.1 uses SWT 4.7 and this works fine. Is CentOS 6 not
supported any more by SWT 4.8? Is there a list of officially supported
Linux versions? Thanks in advance.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
Aleksandar Kurtakov
2018-07-11 08:19:10 UTC
Permalink
That's really weird. The function in question is just:
JNIEXPORT void JNICALL OS_NATIVE(_1cachejvmptr)
(JNIEnv *env, jclass that)
{
/* cache the JavaVM pointer */
if (cached_jvm == NULL) (*env)->GetJavaVM(env, &cached_jvm);
}

Which java version is that ?
Post by Thomas Singer
Hi,
When launching SmartGit 18.2 which uses SWT 4.8 on a CentOS 6.10 64-bit,
org.eclipse.swt.internal.gtk.OS._cachejvmptr()V
at org.eclipse.swt.internal.gtk.OS._cachejvmptr(Native Method)
at org.eclipse.swt.internal.gtk.OS.cachejvmptr(OS.java:481)
at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:92)
134)
80)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:142)
at smartgit.XX.a(SourceFile:62)
at smartgit.asa.a(SourceFile:108)
at com.syntevo.smartgit.q.a(SourceFile:301)
at com.syntevo.smartgit.q.a(SourceFile:246)
at smartgit.asx.a(SourceFile:68)
at com.syntevo.smartgit.SmartGit.main(SourceFile:11)
SmartGit 18.1 uses SWT 4.7 and this works fine.
Is CentOS 6 not supported any more by SWT 4.8?
As CentOS 6 is GTK 2.x based it's in a "if it works" state. And ability to
even start on systems that don't have GTK 3 will be dropped in 4.10 release
(Dec) - announced yesterday on cross-project mailing list and at
https://wiki.eclipse.org/Eclipse/PMC .
Post by Thomas Singer
Is there a list of officially supported Linux versions?
Due to the crazy amount of different distributions and etc. there is a a
list of "target environments" - aka environments that someone stated an
intent to test and work on bugs for. It's available at
https://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_8.xml#target_environments
. This is by no means an exclusive list and IMHO any not too old (aka has
GTK 3) Linux distribution that doesn't deviate too much from upstream
projects should be working fine.
Post by Thomas Singer
Thanks in advance.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
_______________________________________________
platform-swt-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
--
Alexander Kurtakov
Red Hat Eclipse Team
Daniel Megert
2018-07-11 08:24:03 UTC
Permalink
There was a related change in 4.8:

Bug 521487: [JNI] Expose cached JVM pointer

Maybe that introduced the bug?

Dani



From: Aleksandar Kurtakov <***@redhat.com>
To: "Eclipse Platform SWT component developers list."
<platform-swt-***@eclipse.org>
Date: 11.07.2018 10:19
Subject: Re: [platform-swt-dev] SWT 4.8 and CentOS 6.10
Sent by: platform-swt-dev-***@eclipse.org



That's really weird. The function in question is just:
JNIEXPORT void JNICALL OS_NATIVE(_1cachejvmptr)
(JNIEnv *env, jclass that)
{
/* cache the JavaVM pointer */
if (cached_jvm == NULL) (*env)->GetJavaVM(env, &cached_jvm);
}

Which java version is that ?

On Wed, Jul 11, 2018 at 9:57 AM, Thomas Singer <ts-***@syntevo.com> wrote:
Hi,

When launching SmartGit 18.2 which uses SWT 4.8 on a CentOS 6.10 64-bit,
I'm getting following exception:

java.lang.UnsatisfiedLinkError:
org.eclipse.swt.internal.gtk.OS._cachejvmptr()V
at org.eclipse.swt.internal.gtk.OS._cachejvmptr(Native Method)
at org.eclipse.swt.internal.gtk.OS.cachejvmptr(OS.java:481)
at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:92)
at
org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:134)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:80)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:142)
at smartgit.XX.a(SourceFile:62)
at smartgit.asa.a(SourceFile:108)
at com.syntevo.smartgit.q.a(SourceFile:301)
at com.syntevo.smartgit.q.a(SourceFile:246)
at smartgit.asx.a(SourceFile:68)
at com.syntevo.smartgit.SmartGit.main(SourceFile:11)

SmartGit 18.1 uses SWT 4.7 and this works fine.

Is CentOS 6 not supported any more by SWT 4.8?

As CentOS 6 is GTK 2.x based it's in a "if it works" state. And ability to
even start on systems that don't have GTK 3 will be dropped in 4.10
release (Dec) - announced yesterday on cross-project mailing list and at
https://wiki.eclipse.org/Eclipse/PMC .

Is there a list of officially supported Linux versions?

Due to the crazy amount of different distributions and etc. there is a a
list of "target environments" - aka environments that someone stated an
intent to test and work on bugs for. It's available at
https://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_8.xml#target_environments
. This is by no means an exclusive list and IMHO any not too old (aka has
GTK 3) Linux distribution that doesn't deviate too much from upstream
projects should be working fine.


Thanks in advance.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
_______________________________________________
platform-swt-dev mailing list
platform-swt-***@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
--
Alexander Kurtakov
Red Hat Eclipse Team_______________________________________________
platform-swt-dev mailing list
platform-swt-***@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
Eric Williams
2018-07-11 14:18:02 UTC
Permalink
Try forcing either SWT_GTK3=1 or SWT_GTK3=0 -- we had a user report a
similar issue and that fixed it for him. See:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=521487#c15

Eric
Post by Thomas Singer
Hi,
When launching SmartGit 18.2 which uses SWT 4.8 on a CentOS 6.10 64-bit,
org.eclipse.swt.internal.gtk.OS._cachejvmptr()V
at org.eclipse.swt.internal.gtk.OS._cachejvmptr(Native Method)
at org.eclipse.swt.internal.gtk.OS.cachejvmptr(OS.java:481)
at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:92)
134)
80)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:142)
at smartgit.XX.a(SourceFile:62)
at smartgit.asa.a(SourceFile:108)
at com.syntevo.smartgit.q.a(SourceFile:301)
at com.syntevo.smartgit.q.a(SourceFile:246)
at smartgit.asx.a(SourceFile:68)
at com.syntevo.smartgit.SmartGit.main(SourceFile:11)
SmartGit 18.1 uses SWT 4.7 and this works fine. Is CentOS 6 not supported
any more by SWT 4.8? Is there a list of officially supported Linux
versions? Thanks in advance.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
_______________________________________________
platform-swt-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
Thomas Singer
2018-07-12 06:32:31 UTC
Permalink
Hi Eric,

Thank you. SmartGit 18.2 sets SWT_GTK3=1, so we test-drive it. With
SWT_GTK3=0 (as in SmartGit 18.1) it works.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
Post by Eric Williams
Try forcing either SWT_GTK3=1 or SWT_GTK3=0 -- we had a user report a
https://bugs.eclipse.org/bugs/show_bug.cgi?id=521487#c15
Eric
Post by Thomas Singer
Hi,
When launching SmartGit 18.2 which uses SWT 4.8 on a CentOS 6.10 64-bit,
org.eclipse.swt.internal.gtk.OS._cachejvmptr()V
at org.eclipse.swt.internal.gtk.OS._cachejvmptr(Native Method)
at org.eclipse.swt.internal.gtk.OS.cachejvmptr(OS.java:481)
at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:92)
134)
80)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:142)
at smartgit.XX.a(SourceFile:62)
at smartgit.asa.a(SourceFile:108)
at com.syntevo.smartgit.q.a(SourceFile:301)
at com.syntevo.smartgit.q.a(SourceFile:246)
at smartgit.asx.a(SourceFile:68)
at com.syntevo.smartgit.SmartGit.main(SourceFile:11)
SmartGit 18.1 uses SWT 4.7 and this works fine. Is CentOS 6 not supported
any more by SWT 4.8? Is there a list of officially supported Linux
versions? Thanks in advance.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
_______________________________________________
platform-swt-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
_______________________________________________
platform-swt-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
Eric Williams
2018-07-12 14:02:01 UTC
Permalink
No problem. IIRC CentOS 6 doesn't have GTK3, so you have to force GTK2
in this case.

Eric
Post by Thomas Singer
Hi Eric,
Thank you. SmartGit 18.2 sets SWT_GTK3=1, so we test-drive it. With
SWT_GTK3=0 (as in SmartGit 18.1) it works.
Thomas Singer
2018-07-12 15:55:08 UTC
Permalink
Hi Eric,

I've removed the SWT_GTK3 setting completely in the launcher script. Did
not know that without the setting it uses some kind of automatic mode
preferring GTK3 but if not present using GTK2.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
Post by Eric Williams
No problem. IIRC CentOS 6 doesn't have GTK3, so you have to force GTK2
in this case.
Eric
Post by Thomas Singer
Hi Eric,
Thank you. SmartGit 18.2 sets SWT_GTK3=1, so we test-drive it. With
SWT_GTK3=0 (as in SmartGit 18.1) it works.
_______________________________________________
platform-swt-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev
Thomas Singer
2018-07-31 07:51:38 UTC
Permalink
Hi,

I was wrong. Don't know why I thought not setting SWT_GTK3 would solve
that - for some reason I assumed an automatic that detects the
availability of GTK3. I have to set SWT_GTK3=0 to force GTK2 as you
suggested.
--
Best regards,
Thomas Singer
=============
syntevo GmbH
https://www.syntevo.com
https://www.syntevo.com/blog
Post by Thomas Singer
Hi Eric,
I've removed the SWT_GTK3 setting completely in the launcher script. Did
not know that without the setting it uses some kind of automatic mode
preferring GTK3 but if not present using GTK2.
Loading...