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

David Nyström david.nystrom at enea.com
Tue Sep 4 01:20:48 PDT 2012


From: Björn Arnelid <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>
Signed-off-by: David Nyström <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




More information about the yocto mailing list