hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allen Wittenauer (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-2565) hdfs command does not explicitely complain that the command I am trying to run is not valid
Date Sun, 14 Sep 2014 19:14:33 GMT

    [ https://issues.apache.org/jira/browse/HDFS-2565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14133353#comment-14133353

Allen Wittenauer commented on HDFS-2565:

This breaks stuff.

The big problem is that the patch assumes that every main method that one could call in the
java code is documented in the hdfs subcommand.  This is definitely incorrect.  In fact, the
code has in the usage section:

   echo " or"
   echo "  CLASSNAME            run the class named CLASSNAME"

In other words, that catchall at the end is meant to be a class.  Thus why one throws a java
error when one gives a broken subcommand.

That said, what could be done here is that the code check for periods. If the catch-all doesn't
contain a period, there is a 99% likelihood that it isn't a class but a typo.  

> hdfs command does not explicitely complain that the command I am trying to run is not
> -------------------------------------------------------------------------------------------
>                 Key: HDFS-2565
>                 URL: https://issues.apache.org/jira/browse/HDFS-2565
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: scripts
>    Affects Versions: 0.23.0, 0.23.1
>            Reporter: Bruno Mahé
>            Assignee: Chu Tong
>              Labels: bigtop, noob
>         Attachments: HDFS-2565.patch, HDFS-2565.patch
> [root@bigtop-fedora-15 ~]# hdfs foobar
> Exception in thread "main" java.lang.NoClassDefFoundError: foobar
> Caused by: java.lang.ClassNotFoundException: foobar
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> Could not find the main class: foobar. Program will exit.
> Instead of loading any class, it would be nice to explain the command is not valid and
to call print_usage()

This message was sent by Atlassian JIRA

View raw message