Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Long array in Criteria.addCriteria

    Hi,

    I'm keeping IP addresses stored as 32-bit integers in MySQL. I'm keeping an array of permissions for these integers in SmartGWT, so a user is only able to access the IPs that they are allowed to. However, Criteria.addCriteria does not support a Long array. See code below:

    Criteria remotesCriteria = new Criteria();
    Long [] remote_ips = new
    Long[session.getUser().getRemotePermissions().size()];
    session.getUser().getRemotePermissions().toArray(remote_ips);
    remotesCriteria.addCriteria("IpAddress", remote_ips); <---- Not supported.

    How can I get this to work with a Long array?

    #2
    Try to set attribute directly:
    Code:
    remotesCriteria.setAttribute("IpAddress", remote_ips);
    Regards,
    Alius

    Comment


      #3
      No luck, I'm getting the following. Any other suggestions? I don't understand why addCriteria cannot accept a Long array.


      com.google.gwt.core.client.JavaScriptException: (RangeError): Maximum call stack size exceeded
      at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
      at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
      at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
      at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
      at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
      at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
      at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
      at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
      at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
      at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
      at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
      at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
      at java.lang.Thread.run(Unknown Source)

      Comment


        #4
        Use AdvancedCriteria to build an OR Criterion containing one EQUALS Criterion per value.

        Comment


          #5
          Thanks! That worked. You da man!

          Comment

          Working...
          X