# HG changeset patch # User ksrini # Date 1376500677 25200 # Node ID 276a62b19d45b125938cd1344f23af968945f4d7 # Parent 2b188911d712df297a9ca7c3303ce06feac19bae 8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris Reviewed-by: dholmes, anthony, ahgross, erikj diff -r 2b188911d712 -r 276a62b19d45 jdk/src/solaris/bin/java_md_solinux.c --- a/jdk/src/solaris/bin/java_md_solinux.c Mon Aug 12 13:47:21 2013 -0700 +++ b/jdk/src/solaris/bin/java_md_solinux.c Wed Aug 14 10:17:57 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -958,9 +958,27 @@ void* SplashProcAddress(const char* name) { if (!hSplashLib) { - const char * splashLibPath; - splashLibPath = SPLASHSCREEN_SO; - hSplashLib = dlopen(splashLibPath, RTLD_LAZY | RTLD_GLOBAL); + int ret; + char jrePath[MAXPATHLEN]; + char splashPath[MAXPATHLEN]; + + if (!GetJREPath(jrePath, sizeof(jrePath), GetArch(), JNI_FALSE)) { + JLI_ReportErrorMessage(JRE_ERROR1); + return NULL; + } + ret = JLI_Snprintf(splashPath, sizeof(splashPath), "%s/lib/%s/%s", + jrePath, GetArch(), SPLASHSCREEN_SO); + + if (ret >= (int) sizeof(splashPath)) { + JLI_ReportErrorMessage(JRE_ERROR11); + return NULL; + } + if (ret < 0) { + JLI_ReportErrorMessage(JRE_ERROR13); + return NULL; + } + hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL); + JLI_TraceLauncher("Info: loaded %s\n", splashPath); } if (hSplashLib) { void* sym = dlsym(hSplashLib, name);