title: Getting different output while running the same code in j2me & NetBeans
body: <p>Run below code in both j2me &amp; NetBeans:</p>
  
  <p>This code is for record filtering(search the records).</p>
  
  <p>The problem is that while we running this code in j2me it performs search from the beginning and in NetBeans is search from reverse.</p>
  
  <pre><code>        import javax.microedition.rms.*;
          import javax.microedition.midlet.*;
          import javax.microedition.lcdui.*;
          import java.io.*;
          import javax.microedition.rms.RecordFilter;
          public class SearchExample extends MIDlet implements CommandListener
          {
          private Display display;
          private Alert alert;
          private Form form;
          private Command exit;
          private Command start;
          private RecordStore recordstore = null;
          private RecordEnumeration recordEnumeration = null;
          private Filter filter = null;
          public SearchExample ()
          {
          display = Display.getDisplay(this);
          exit = new Command("Exit", Command.SCREEN, 1);
          start = new Command("Start", Command.SCREEN, 1);
          form = new Form("Mixed RecordEnumeration", null);
          form.addCommand(exit);
          form.addCommand(start);
          form.setCommandListener(this);
          }
          public void startApp()
          {
          display.setCurrent(form);
          }
          public void pauseApp()
          {
          }
          public void destroyApp( boolean unconditional )
          {
          }
          public void commandAction(Command command, Displayable displayable)
          {
          if (command == exit)
          {
          destroyApp(true);
          notifyDestroyed();
          }
          else if (command == start)
          {
          try
          {
          recordstore = RecordStore.openRecordStore("myRecordStore", true );
          }
          catch (Exception error)
          {
          alert = new Alert("Error Creating",error.toString(), null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          try
          {
          String outputData[] = {"Mary", "Adam","dancebob","bobby","bob1"};
          for (int x = 0 ; x &lt; outputData.length; x++)
          {
  
          byte[] byteOutputData = outputData[x].getBytes();
          recordstore.addRecord(byteOutputData, 0,byteOutputData.length);
          }
          }
          catch ( Exception error)
          {
          alert = new Alert("Error Writing",error.toString(), null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          try
          {
          filter = new Filter("Bob");
          StringBuffer sbuf=new StringBuffer();
          recordEnumeration = recordstore.enumerateRecords(filter, null, false);
          if (recordEnumeration.numRecords() &gt; 0)
          {
          for(int i=0;i&lt;recordEnumeration.numRecords();i++){
          String string = new String(recordEnumeration.nextRecord());
          sbuf.append(string+"\n");
          }
  
          alert = new Alert("Reading", sbuf.toString(),null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          }
          catch (Exception error)
          {
          alert = new Alert("Error Reading",error.toString(), null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          try
          {
          recordstore.closeRecordStore();
          }
          catch (Exception error)
          {
          alert = new Alert("Error Closing",error.toString(), null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          if (RecordStore.listRecordStores() != null)
          {
          try
          {
          RecordStore.deleteRecordStore("myRecordStore");
          recordEnumeration.destroy();
          filter.filterClose();
          }
          catch (Exception error)
          {
          alert = new Alert("Error Removing",error.toString(), null, AlertType.WARNING);
          alert.setTimeout(Alert.FOREVER);
          display.setCurrent(alert);
          }
          }
  
          }
          }
          }
          class Filter implements RecordFilter
          {
          private String search = null;
          private ByteArrayInputStream inputstream = null;
          private DataInputStream datainputstream = null;
          public Filter(String search)
          {
          this.search = search.toLowerCase();
          }
          public boolean matches(byte[] suspect)
          {
          String string = new String(suspect).toLowerCase();
  
          if (string!= null &amp;&amp; string.indexOf(search) != -1)
              return true;
          else
              return false;
          }
  
          public void filterClose()
          {
          try
          {
          if (inputstream != null)
          {
          inputstream.close();
          }
          if (datainputstream != null)
          {
          datainputstream.close();
          }
          }
          catch ( Exception error)
          {
          }
          }
          }
  </code></pre>