SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 60348: An error incorrectly occurs when you use the MISSING() function as the only element of the whereClause argument in the TABLESELECT() function

DetailsHotfixAboutRate It

In SAS®  Real-Time Decision Manager, an error incorrectly occurs when you use the MISSING() function as the only element of the whereClause argument of the TABLESELECT() function in a calculated variable. The error, shown below, is displayed in the log file for the SAS Decision Services design server:

com.sas.analytics.ph.RTDMException: Error executing node
  at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:196)
  at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:170)
  at com.sas.rtdm.implementation.engine.Path.execute(Path.java:141)
  at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:135)
  at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:156)
  at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:114)
  at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:202)
  at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:114)
  at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:70)
  at com.sas.rtdm.designserver.implementation.DesignServerInternalImpl.test(DesignServerInternalImpl.java:760)
  at com.sas.rtdm.designserver.implementation.TranslatingDesignServerImpl.test(TranslatingDesignServerImpl.java:354)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at com.sas.rtdm.designserver.implementation.DesignServerWebserviceFactory.invokeMethod(DesignServerWebserviceFactory.java:207)
  at com.sas.rtdm.designserver.implementation.DesignServerWebserviceFactory.handleDesignServerCalls(DesignServerWebserviceFactory.java:167)
  at com.sas.rtdm.designserver.implementation.DesignServerWebserviceFactory.access$400(DesignServerWebserviceFactory.java:39)
  at com.sas.rtdm.designserver.implementation.DesignServerWebserviceFactory$1.invoke(DesignServerWebserviceFactory.java:118)
  at com.sun.proxy.$Proxy189.test(Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:77)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  at com.sun.proxy.$Proxy191.test(Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
  at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38)
  at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
  at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
  at com.sas.svcs.remoting.aspects.AbstractAspectJRemoteInvocationInterceptor.invoke(AbstractAspectJRemoteInvocationInterceptor.java:63)
  at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
  at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
  at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
  at com.sun.proxy.$Proxy190.invoke(Unknown Source)
  at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
  at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
  at com.sas.svcs.remoting.httpinvoker.PostProcessingHttpInvokerServiceExporter.invokeAndCreateResult(PostProcessingHttpInvokerServiceExporter.java:83)
  at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:73)
  at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
  at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
  at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
  at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
  at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:745)
 Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Boolean
  at com.sas.analytics.ph.common.RTDMTable.evaluateConditionalClause(RTDMTable.java:1702)
  at com.sas.analytics.ph.common.RTDMTable.access$1200(RTDMTable.java:56)
  at com.sas.analytics.ph.common.RTDMTable$WherePredicate.evaluate(RTDMTable.java:1681)
  at org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:185)
  at org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
  at com.sas.analytics.ph.common.RTDMTable._select(RTDMTable.java:1411)
  at com.sas.analytics.ph.common.RTDMTable.select(RTDMTable.java:1375)
  at com.sas.analytics.ph.common.exp.exec.FnTableSelect.getTableValue(FnTableSelect.java:36)
  at com.sas.analytics.ph.common.exp.exec.ExecutableTree.execSelf(ExecutableTree.java:202)
  at com.sas.analytics.ph.common.exp.exec.ExecutableTree.execAndAllowNull(ExecutableTree.java:377)
  at com.sas.analytics.ph.common.exp.exec.OpAssignment.execForAssignment(OpAssignment.java:75)
  at com.sas.analytics.ph.common.exp.exec.OpAssignment.execSelf(OpAssignment.java:27)
  at com.sas.analytics.ph.common.exp.exec.StmExpression.execSelf(StmExpression.java:25)
  at com.sas.analytics.ph.common.exp.exec.StmProgram.execSelf(StmProgram.java:38)
  at com.sas.analytics.ph.common.exp.exec.ExecutableTree.exec(ExecutableTree.java:134)
  at com.sas.rtdm.implementation.engine.AssignmentNode.execute(AssignmentNode.java:67)
  at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:189)
 ... 82 more

Syntax similar to the following fails:

     TABLESELECT(<<identifiers.SMSSendOut>>,'*','MISSING(<<identifiers.SMSSendOut>>.SENDER)')

To work around this issue, use syntax similar to the example below, which performs direct comparison to the SAS missing value:

     TABLESELECT(<<identifiers.SMSSendOut>>,'*','<<identifiers.SMSSendOut>>.SENDER EQ .')

A fix for this issue is planned for a future software release.

 



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Real-Time Decision ManagerMicrosoft® Windows® for x646.49.4 TS1M2
Microsoft Windows 8 Enterprise 32-bit6.49.4 TS1M2
Microsoft Windows 8 Enterprise x646.49.4 TS1M2
Microsoft Windows 8 Pro 32-bit6.49.4 TS1M2
Microsoft Windows 8 Pro x646.49.4 TS1M2
Microsoft Windows 8.1 Enterprise 32-bit6.49.4 TS1M2
Microsoft Windows 8.1 Enterprise x646.49.4 TS1M2
Microsoft Windows 8.1 Pro 32-bit6.49.4 TS1M2
Microsoft Windows 8.1 Pro x646.49.4 TS1M2
Microsoft Windows 106.49.4 TS1M2
Microsoft Windows Server 20086.49.4 TS1M2
Microsoft Windows Server 2008 R26.49.4 TS1M2
Microsoft Windows Server 2008 for x646.49.4 TS1M2
Microsoft Windows Server 2012 Datacenter6.49.4 TS1M2
Microsoft Windows Server 2012 R2 Datacenter6.49.4 TS1M2
Microsoft Windows Server 2012 R2 Std6.49.4 TS1M2
Microsoft Windows Server 2012 Std6.49.4 TS1M2
Windows 7 Enterprise 32 bit6.49.4 TS1M2
Windows 7 Enterprise x646.49.4 TS1M2
Windows 7 Home Premium 32 bit6.49.4 TS1M2
Windows 7 Home Premium x646.49.4 TS1M2
Windows 7 Professional 32 bit6.49.4 TS1M2
Windows 7 Professional x646.49.4 TS1M2
Windows 7 Ultimate 32 bit6.49.4 TS1M2
Windows 7 Ultimate x646.49.4 TS1M2
64-bit Enabled AIX6.49.4 TS1M2
64-bit Enabled Solaris6.49.4 TS1M2
HP-UX IPF6.49.4 TS1M2
Linux for x646.49.4 TS1M2
Solaris for x646.49.4 TS1M2
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.