knivit created IGNITE-2891: ------------------------------ Summary: Can't start ggvisorui.sh (ignite.sh etc) on CygWIN Key: IGNITE-2891 URL: https://issues.apache.org/jira/browse/IGNITE-2891 Project: Ignite Issue Type: Bug Affects Versions: 1.5.0.final Reporter: knivit Priority: Minor
[ PROBLEM ] I've tried to start ggvisorui on CygWIN and got a fatal error: {code} $ uname && pwd CYGWIN_NT-10.0 /home/user/gridgain-enterprise-fabric-7.5.8 $ ./bin/ggvisorui.sh & [1] 10340 Error: Could not find or load main class org.gridgain.visor.gui.VisorGuiLauncher {code} [ INVESTIGATION ] $IGNITE_HOME is set incorrectly in these scripts: {code} $ fgrep -ir -n -A 2 'cygwin' bin/ bin/include/build-classpath.sh:38: CYGWIN*) bin/include/build-classpath.sh-39- SEP=";"; bin/include/build-classpath.sh-40- export IGNITE_HOME=`echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/'` -- bin/include/functions.sh:148: CYGWIN*) bin/include/functions.sh-149- SEP=";"; bin/include/functions.sh-150- export IGNITE_HOME=`echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/'` -- bin/include/setenv.sh:48: CYGWIN*) bin/include/setenv.sh-49- SEP=";"; bin/include/setenv.sh-50- export IGNITE_HOME=`echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/'` {code} bin/include/functions.sh is sourced everywhere (ggvisurui.sh, ignite.sh etc) so they don't work. The cause is in using sed: {code} $ IGNITE_HOME=/home/user/gridgain-enterprise-fabric-7.5.8 $ echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/' h:ome/user/gridgain-enterprise-fabric-7.5.8 {code} [ SOLUTION ] There is a standard utility to do the work properly: {code} $ IGNITE_HOME=/home/user/gridgain-enterprise-fabric-7.5.8 $ cygpath --path --windows $IGNITE_HOME D:\cygwin64\home\user\gridgain-enterprise-fabric-7.5.8 {code} BTW why the same code repeated three times ? And check this: {code} getClassPathSeparator() { SEP=":"; case "`uname`" in MINGW*) SEP=";"; export IGNITE_HOME=`echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/'` ;; CYGWIN*) SEP=";"; export IGNITE_HOME=`echo $IGNITE_HOME | sed -e 's/^\/\([a-zA-Z]\)/\1:/'` ;; esac } {code} A function with a name like "getClassPathSeparator" should NOT change anything (get... means a getter). -- This message was sent by Atlassian JIRA (v6.3.4#6332)