[yocto] [eclipse-poky][PATCH] Fix NullPointerException

Zhang, Jessica jessica.zhang at intel.com
Tue Sep 4 14:50:39 PDT 2012


Merged to master, thanks!



From: David Nyström [mailto:David.Nystrom at enea.com]
Sent: Tuesday, September 04, 2012 1:23 PM
To: yocto at yoctoproject.org; Zhang, Jessica
Cc: Björn Arnelid
Subject: RE: [yocto] [eclipse-poky][PATCH] Fix NullPointerException



Hi,

The Nullpointer exception is thrown when trying to use a toolchain tarball
which has DISTRO set to something else than poky.
This would generate the name *${DISTRO}sdk* in the sysroot under /opt/${DISTRO}/1.2/sysroots/

Br,
David


Sent from my Android phone using TouchDown (www.nitrodesk.com<http://www.nitrodesk.com>)

-----Original Message-----
From: Zhang, Jessica [jessica.zhang at intel.com]
Received: Tuesday, 04 Sep 2012, 19:21
To: David Nyström [David.Nystrom at enea.com]; yocto at yoctoproject.org<mailto:yocto at yoctoproject.org> [yocto at yoctoproject.org]
CC: Björn Arnelid [Bjorn.Arnelid at enea.com]
Subject: RE: [yocto] [eclipse-poky][PATCH] Fix NullPointerException

Hi Björn,

Thanks for the patch, there's no issue as to the coding and implementation of the patch.  Just need to clarify what's the usage scenario or how did you generate your toolchain that's different from the naming convention of the sysroot directory names that's generated by poky build?

Thanks,
Jessica

-----Original Message-----
From: yocto-bounces at yoctoproject.org<mailto:yocto-bounces at yoctoproject.org> [mailto:yocto-bounces at yoctoproject.org] On Behalf Of David Nystr?m
Sent: Tuesday, September 04, 2012 1:21 AM
To: yocto at yoctoproject.org<mailto:yocto at yoctoproject.org>
Cc: Björn Arnelid
Subject: [yocto] [eclipse-poky][PATCH] Fix NullPointerException

From: Björn Arnelid <bjorn.arnelid at enea.com<mailto:bjorn.arnelid at enea.com>>

[Yocto Bugzilla] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=3019

When using a Toolchain where sysroot is not named <arch>-pokysdk-linux a NullPointerException is thrown when trying to apply changes in Yocto Preferences.
It should be possible to use Toolchains with a sysroot named <arch>-<organizationName>sdk-linux with the plugin.

static private String findHostArch(File sysroot_dir) now accept folders named *sdk-linux instead of *-pokysdk-linux. checkYoctoSDK will also return SDKCheckResults.TOOLCHAIN_NO_SYSROOT if findHostArch returns null.

Author:    Björn Arnelid <bjorn.arnelid at enea.com<mailto:bjorn.arnelid at enea.com>>
Signed-off-by: David Nyström <david.nystrom at enea.com<mailto:david.nystrom at enea.com>>
---
 .../src/org/yocto/sdk/ide/YoctoSDKUtils.java       |   20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
index 6be90be..749fac7 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
@@ -100,7 +100,17 @@ public class YoctoSDKUtils {
                        File sysroot_dir = new File(sysroot_dir_str);
                        if (!sysroot_dir.exists())
                                return SDKCheckResults.TOOLCHAIN_NO_SYSROOT;
-                       String toolchain_host_arch = findHostArch(sysroot_dir);
+
+                       String toolchain_host_arch = null;
+
+                       try
+                       {
+                               toolchain_host_arch = findHostArch(sysroot_dir);
+                       }
+                       catch(NullPointerException e)
+                       {
+                               return SDKCheckResults.TOOLCHAIN_NO_SYSROOT;
+                       }

                        if (!toolchain_host_arch.equalsIgnoreCase(platform)) {
                                if (!platform.matches("i\\d86") || !toolchain_host_arch.matches("i\\d86"))
@@ -576,7 +586,7 @@ public class YoctoSDKUtils {
        static private String findHostArch(File sysroot_dir) {
                FilenameFilter nativeFilter = new FilenameFilter() {
                        public boolean accept(File dir, String name) {
-                               if (name.endsWith("-pokysdk-linux")) {
+                               if (name.endsWith("sdk-linux")) {
                                        return true;
                                } else {
                                        return false;
@@ -590,11 +600,11 @@ public class YoctoSDKUtils {
                for (File file : files) {
                        if (file.isDirectory()) {
                                String path = file.getName();
-                               arch = path.substring(0, path.indexOf("-pokysdk-linux"));
+                               String[] subPath = path.split("-");
+                               arch = subPath[0];
                        } else
                                continue;
         }
                return arch;
        }
-}
-
+}
\ No newline at end of file
--
1.7.9.5

_______________________________________________
yocto mailing list
yocto at yoctoproject.org<mailto:yocto at yoctoproject.org>
https://lists.yoctoproject.org/listinfo/yocto

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20120904/1a5ddab3/attachment.html>


More information about the yocto mailing list