Hi, I hope this is the right place to send a patch, if not could someone pleace 
point me in the right direction for sending patches.

YoctoSDKUtils: Avoid NullPointerException when setting Yocto Properties

[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.


Signed-off-by: Björn Arnelid <bjorn.arne...@enea.com>

From f8f4961f7b5d44ae92bf9b578955f40ae2342179 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Arnelid?= <bjar@bjar-Latitude-D630.(none)>
Date: Fri, 31 Aug 2012 14:31:03 +0200
Subject: [PATCH] YoctoSDKUtils: Avoid NullPointerException when setting Yocto
 Properties
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[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.

Signed-off-by: Björn Arnelid <bjorn.arne...@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@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to