[ https://issues.apache.org/jira/browse/KAFKA-1081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13791870#comment-13791870 ]
Francois Saint-Jacques commented on KAFKA-1081: ----------------------------------------------- Look, this is an ugly hack. The real problem here is not the directory permission or using a temp file but RERUNNING the first java command. I'm not even trying to build it, I'm trying to correctly package kafka on a production server. Whenever I run any command (bin/*) that doesn't return properly, it borks if kafka-run-class.sh is called within a directory where the user don't have write permission. I understand that these lines are there to help new users who checkout the project and forget to build before running any command, but we're talking of deploying quality code in production. > kafka-run-class.sh is broken > ---------------------------- > > Key: KAFKA-1081 > URL: https://issues.apache.org/jira/browse/KAFKA-1081 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8 > Reporter: Francois Saint-Jacques > > Please apply this patch, this is why log4j exists. Rerunning at > non-deterministic command twice to catch error message is extremely dangerous. > diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh > index eb6ff1b..2f2d8b5 100755 > --- a/bin/kafka-run-class.sh > +++ b/bin/kafka-run-class.sh > @@ -102,19 +102,3 @@ if [ "$1" = "daemon" ] && [ -z "$KAFKA_GC_LOG_OPTS"] ; > then > fi > $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS > $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" > - > -exitval=$? > - > -if [ $exitval -eq "1" ] ; then > - $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS > $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@" >& > exception.txt > - exception=`cat exception.txt` > - noBuildMessage='Please build the project using sbt. Documentation is > available at http://kafka.apache.org/' > - pattern="(Could not find or load main > class)|(java\.lang\.NoClassDefFoundError)" > - match=`echo $exception | grep -E "$pattern"` > - if [[ -n "$match" ]]; then > - echo $noBuildMessage > - fi > - rm exception.txt > -fi > - > - -- This message was sent by Atlassian JIRA (v6.1#6144)