Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SBT Error: "Failed to construct terminal; falling back to unsupported..."

Tags:

sbt

I have run into an ERROR with SBT today. It can best be shown with the sbt sbt-version command:

Run on 5/29/17:

eric@linux-x2vq:~$ sbt sbt-version Java HotSpot(TM) 64-Bit Server VM warning: ignoring option  MaxPermSize=256M; support was removed in 8.0 [info] Set current project to eric (in build file:/home/eric/) [info] 0.13.13 

Run on 6/1/17:

eric@linux-x2vq:~$ sbt sbt-version Java HotSpot(TM) 64-Bit Server VM warning: ignoring option              MaxPermSize=256M; support was removed in 8.0 [ERROR] Failed to construct terminal; falling back to unsupported java.lang.NumberFormatException: For input string: "0x100" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59) at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:233) at jline.UnixTerminal.<init>(UnixTerminal.java:64) at jline.UnixTerminal.<init>(UnixTerminal.java:49) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at jline.TerminalFactory.getFlavor(TerminalFactory.java:209) at jline.TerminalFactory.create(TerminalFactory.java:100) at jline.TerminalFactory.get(TerminalFactory.java:184) at jline.TerminalFactory.get(TerminalFactory.java:190) at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:123) at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:117) at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala) at sbt.GlobalLogging$.initial(GlobalLogging.scala:43) at sbt.StandardMain$.initialGlobalLogging(Main.scala:64) at sbt.StandardMain$.initialState(Main.scala:73) at sbt.xMain.run(Main.scala:29) at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109) at xsbt.boot.Launch$.withContextLoader(Launch.scala:128) at xsbt.boot.Launch$.run(Launch.scala:109) at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35) at xsbt.boot.Launch$.launch(Launch.scala:117) at xsbt.boot.Launch$.apply(Launch.scala:18) at xsbt.boot.Boot$.runImpl(Boot.scala:41) at xsbt.boot.Boot$.main(Boot.scala:17) at xsbt.boot.Boot.main(Boot.scala)  [info] Set current project to eric (in build file:/home/eric/) [info] 0.13.13 

No changes (that I know of) to either my SBT or Java setup.

Any ideas on what might be causing this or how to fix the error?

Thank you!

like image 871
ericky Avatar asked Jun 01 '17 21:06

ericky


2 Answers

I had the same issue, especially when the TERM environment variable is set to xterm-256color. Setting it to a different value fixed the issue for me, e.g.

export TERM=xterm-color 
like image 126
user3113045 Avatar answered Sep 23 '22 01:09

user3113045


I found the package which causes this issue: ncurses. I downgraded ncurses to version ncurses-6.0+20170429-1 (I am using Arch Linux) and SBT starts just fine.

Steps for Arch Linux:

cd /var/cache/pacman/pkg sudo pacman -U ncurses-6.0+20170429-1-x86_64.pkg.tar.xz # or some other older version 

Steps for Mac: see https://github.com/jline/jline2/issues/281

I think this issue was introduced with ncurses version 20170506, see: http://invisible-island.net/ncurses/NEWS.html#index-t20170506

+ modify tic/infocmp display of numeric values to use hexadecimal when       they are "close" to a power of two, making the result more readable. 

I filed an issue on the SBT issue tracker: https://github.com/sbt/sbt/issues/3240

Edit: SBT version 0.13.16 includes the fix for this problem.

like image 31
amuttsch Avatar answered Sep 26 '22 01:09

amuttsch