You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Brian Cho (JIRA)" <ji...@apache.org> on 2014/12/17 07:50:13 UTC
[jira] [Commented] (REEF-75) Local runtime drops the last classpath
entry when creating Driver
[ https://issues.apache.org/jira/browse/REEF-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14249552#comment-14249552 ]
Brian Cho commented on REEF-75:
-------------------------------
PR added: https://github.com/apache/incubator-reef/pull/36
> Local runtime drops the last classpath entry when creating Driver
> -----------------------------------------------------------------
>
> Key: REEF-75
> URL: https://issues.apache.org/jira/browse/REEF-75
> Project: REEF
> Issue Type: Bug
> Components: REEF Runtime Local
> Environment: Seen on Mac OS X, probably applies to other environments.
> Reporter: Brian Cho
> Assignee: Brian Cho
>
> I've noticed that the local runtime drops the last classpath entry when creating the Driver command.
> TLDR; The fix is removing double quotes from the classpath. Apparently, java does not do any quote removal or anything of that sort for its options.
> {{JavaLaunchCommandBuilder#setClassPath}} adds double quotes to the classpath. But, {{LocalClasspathProvider}} doesn't remove these double quotes, so the first and last entry have a fleeting quote (e.g. {{last-entry.jar"}}) and thus discarded when the file is not found. By chance, the first entry is always {{reef/local/*}} which isn't a file, and gets added back anyway via {{ClasspathProvider}}!
> As far as I can tell, {{LocalClasspathProvider}} isn't wrong to use the string as-is (with the quotes). It's really {{JavaLaunchCommandBuilder#setClassPath}}'s fault for adding them.
> I found this while tracking down a bug with [~yunseong]. Ironically, we've also been discussing {{JavaLaunchCommandBuilder}} at REEF-69.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)