jslt icon indicating copy to clipboard operation
jslt copied to clipboard

array * integer doesn't work

Open umessi opened this issue 3 years ago • 0 comments

I've tried the following in the playground:

[0] * 4

It results in the following exception:

com.schibsted.spt.data.jslt.JsltException: Can't convert [0] to number at <inline>:1:1
	at com.schibsted.spt.data.jslt.impl.NodeUtils.number(NodeUtils.java:127)
	at com.schibsted.spt.data.jslt.impl.NodeUtils.number(NodeUtils.java:112)
	at com.schibsted.spt.data.jslt.impl.NumericOperator.perform(NumericOperator.java:35)
	at com.schibsted.spt.data.jslt.impl.MultiplyOperator.perform(MultiplyOperator.java:54)
	at com.schibsted.spt.data.jslt.impl.AbstractOperator.apply(AbstractOperator.java:41)
	at com.schibsted.spt.data.jslt.impl.AbstractOperator.optimize(AbstractOperator.java:57)
	at com.schibsted.spt.data.jslt.impl.ExpressionImpl.optimize(ExpressionImpl.java:130)
	at com.schibsted.spt.data.jslt.parser.ParserImpl.compile(ParserImpl.java:108)
	at com.schibsted.spt.data.jslt.parser.ParserImpl.compileExpression(ParserImpl.java:56)
	at com.schibsted.spt.data.jslt.Parser.compile(Parser.java:226)
	at com.schibsted.spt.data.jslt.Parser.compileString(Parser.java:86)
	at com.schibsted.spt.data.jslt.Parser.compileString(Parser.java:74)
	at no.priv.garshol.jslt.playground.PlaygroundServer$JsltHandler.handle(PlaygroundServer.java:54)
	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:501)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
	at java.base/java.lang.Thread.run(Thread.java:829)

Given that it works with strings e.g. "a" * 4 outputs "aaaa", I think the operator should work with arrays too.

umessi avatar Aug 31 '21 08:08 umessi