Yeah, it does. Copied withConnection from the state provider. Looks like copya pasta may have struck again...
On Mon, Mar 26, 2018 at 11:44 AM, Bryan Bende <bbe...@gmail.com> wrote: > I can't tell for sure, but the stacktrace looks like your > AbstractRedisProcessor is making a direct call to RedisUtils to create > a connection, rather than using the RedisConnectionPool to obtain a > connection. > > On Mon, Mar 26, 2018 at 11:38 AM, Bryan Bende <bbe...@gmail.com> wrote: > > Can you share the code for your AbstractRedisProcessor? > > > > > > On Mon, Mar 26, 2018 at 9:52 AM, Mike Thomsen <mikerthom...@gmail.com> > wrote: > >> Over the weekend I started playing around with a new processor called > >> PutRedisHash based on a request from the user list. I set up a really > >> simple IT and hit a problem pretty quickly. This passes validation: > >> > >> @Test > >> public void testStandalone() throws Exception { > >> final String attrName = "key.name"; > >> final String attrValue = "simple_test"; > >> RedisConnectionPool connectionPool = new > RedisConnectionPoolService(); > >> TestRunner runner = TestRunners.newTestRunner(PutRedisHash.class); > >> > >> runner.addControllerService("connPool", connectionPool); > >> runner.setProperty(connectionPool, RedisUtils.CONNECTION_STRING, > >> "localhost:6379"); > >> runner.enableControllerService(connectionPool); > >> runner.setProperty(PutRedisHash.REDIS_CONNECTION_POOL, "connPool"); > >> runner.setProperty(PutRedisHash.NAME_ATTRIBUTE, attrName); > >> runner.assertValid(); > >> } > >> > >> As soon as I enqueue some data and call run(), I see the following > >> exception get thrown in the processor. I checked the Connection String > >> property, and it is marked as supporting EL and does call > >> evaluationExpressionLanguage in the RedisUtils.createConnectionFactory > >> method. > >> > >> java.lang.IllegalStateException: Attempting to Evaluate Expressions but > >> PropertyDescriptor[Connection String] indicates that the Expression > >> Language is not supported. If you realize that this is the case and do > not > >> want this error to occur, it can be disabled by calling > >> TestRunner.setValidateExpressionUsage(false) > >> at > >> org.apache.nifi.util.MockPropertyValue.markEvaluated( > MockPropertyValue.java:133) > >> at > >> org.apache.nifi.util.MockPropertyValue.evaluateAttributeExpressions( > MockPropertyValue.java:183) > >> at > >> org.apache.nifi.util.MockPropertyValue.evaluateAttributeExpressions( > MockPropertyValue.java:177) > >> at > >> org.apache.nifi.util.MockPropertyValue.evaluateAttributeExpressions( > MockPropertyValue.java:142) > >> at > >> org.apache.nifi.redis.util.RedisUtils.createConnectionFactory( > RedisUtils.java:260) > >> at > >> org.apache.nifi.processors.redis.AbstractRedisProcessor.getRedis( > AbstractRedisProcessor.java:41) > >> at > >> org.apache.nifi.processors.redis.AbstractRedisProcessor.withConnection( > AbstractRedisProcessor.java:50) > >> at > >> org.apache.nifi.processors.redis.PutRedisHash.onTrigger( > PutRedisHash.java:162) > >> at > >> org.apache.nifi.processor.AbstractProcessor.onTrigger( > AbstractProcessor.java:27) > >> at > >> org.apache.nifi.util.StandardProcessorTestRunner$RunProcessor.call( > StandardProcessorTestRunner.java:251) > >> at > >> org.apache.nifi.util.StandardProcessorTestRunner$RunProcessor.call( > StandardProcessorTestRunner.java:245) > >> at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) > >> at java.util.concurrent.FutureTask.run(FutureTask.java) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > >> at > >> java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > >> at > >> java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1149) > >> at > >> java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:624) > >> at java.lang.Thread.run(Thread.java:748) > >> > >> Any ideas? >