BB10 camera image returns null bitmap

I use the Invoke method to open the camera and take a picture, and then close the map given by jtegen.

When I put the Image, I don't get an error, but the information is zero.

The event data are back with a location of the image.

What step am I missing?

private function CardClosed( event:CardCloseEvent ) : void
{
    trace( 'card closed ' + event.reason + ' ' + event.data );
    InvokeManager.invokeManager.removeEventListener( CardCloseEvent.CARD_CLOSED, CardClosed );

    if( event.reason == 'save' && event.data != '' )
    {
        trace("data : " + event.data);
        // example data value : '/accounts/1000/removable/sdcard/camera/IMG_00000131.jpg'
        imgCapture = new Image();
        imgCapture.setImage( "file://" + event.data );

        decodeBitmapData(imgCapture.bitmapData, stage.stageWidth, stage.stageHeight);
    }
}

I wanted to just note that I tried to put the image by using the following text:

  • "file://" + event.data
  • "file:/". "+ event.data
  • Event.Data

Same result for all 3 channels.

I thought about it.  Not everything works, but I'm capturing the image.

I just need to add the loader to get the image and then place this content in the image.

private function CardClosed( event:CardCloseEvent ) : void
{
    trace( 'card closed ' + event.reason + ' ' + event.data );
    InvokeManager.invokeManager.removeEventListener( CardCloseEvent.CARD_CLOSED, CardClosed );

    if( event.reason == 'save' && event.data != '' )
    {
        trace("request length" + cameraRequest.data.length);

        imgCaptureLoader = new flash.display.Loader();
        imgCaptureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageCapture);
        imgCaptureLoader.load(new URLRequest('file://' + event.data ));
    }
}       

private function onImageCapture( event:Event ):void {
    imgCapture = new Image();
    imgCapture.visible = false;
    try {
        imgCapture.setImage( imgCaptureLoader.content );
        decodeBitmapData(imgCapture.bitmapData, stage.stageWidth, stage.stageHeight);
    } catch (e:*) {
        trace(" load error: " + e);
    }
}

Tags: BlackBerry Developers

Similar Questions

  • CAMERA: getSnapshot returns NULL (CURVE 8900)

    Hello

    I did and took positions... and the examples also set permissions so that I don't get exceptions...

    I see a camera in my viewField... but when I call "getSnapshot", return of the values is null... I tried setting imageType to one of those supported and also tried with null as a parameter in getSnapshot...

    My support for 8900Curve formats are:

    Encoding = rgb565

    Encoding = jpeg & width = 2048 & height = 1536 & quality Super fine =

    Encoding = jpeg & width = 2048 & height = 1536 & quality = normal

    Encoding = jpeg & width = 2048 & height = 1536 & quality = very good

    Encoding = jpeg & width = 1024 & height = 768 & quality = normal

    Encoding = jpeg & width = 1024 & height = 768 & quality = very good

    Encoding = jpeg & width = 1024 & height = 768 & quality Super fine =

    Encoding = jpeg & width = 480 & height = 360 & quality = normal

    Encoding = jpeg & width = 480 & height = 360 & quality = very good

    Encoding = jpeg & width = 480 & height = 360 & quality Super fine =

    My code is below...

    Reader = Manager.createPlayer ("capture://video");

    Player.Realize ();

    Player.Start ();

    VC = player.getControl ("VideoControl") (alarm);

    Viewfinder field (Field) = vc.initDisplayMode (VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field"); this.add (viewfinder);

    String imageType = "encoding = jpeg & width = 480 & height = 360 & quality = normal;

    byte [] imageBytes = (imageType) vc.getSnapshot;

     

    if (imageBytes! =null)

    {

    Image bitmap = Bitmap.createBitmapFromBytes (imageBytes, 0, imageBytes.length, 5);

    ...

    ...

    }

    Thank you.

    Kris

    Two issues I see when we compare your code with mine, who works on a Curve 8900.

    (a) my player.start is that I added the field to the screen.

    (b) my getSnapshot is done on a screen (actually a button click) event, while I am sure that the screen was displayed and the viewfinder is visible.

    I also had real problems with this code on the curve.   You might find this Thread helpful reviews.

    http://supportforums.BlackBerry.com/Rim/Board/message?board.ID=java_dev&message.ID=27454

  • GigE camera - image grab bars

    Hello world

    I use or acquisition of vision to capture images of a GigE camera.

    I get images just as I trigger the camera - rates so so good.

    All other photos shows a few black bars.

    Anyone have any idea what it could be?

    It is not the hardware, the camera works perfectly with the shape of the manufacturer's software development kit.

    Thanks for any help

    Looks like an incomplete picture, this could be caused by the missing packets.  To prevent missing packets when the acquisition, you can do two main things: the size of the packets configured on the camera may not exceed what the network card can manage and ensure that the bandwidth of the output of the camera image data do not saturate interface band bandwidth.  I would reduce the packet size of camera for 1500 initially to determine if the size of the package is the cause of the problem.  You can throttle how much data that the camera can send by manipulating the interpacket delay, some manufacturers have a very handy feature called StreamBytesPerSecond.  According to what mechanism, you can use, increase interpacket delay or reduce StreamBytesPerSecond.

  • Why is my web cam image to feel upside down using Skype?

    Whenever I try to do a video Skype call to someone, the video image od me is upside down.  How can I put my web cam image upside on the right?

    Hello

    1. what operating system do you use?

    2. What is the brand and the model number of the webcam?

    3. have you made changes on your computer?

    4. doesn't this problem only occurs with Skype or other applications?

    I suggest you to follow the steps and check.

    1. log in to your Skype account.
    2. click on tools, Options, video and settings.
    3. Select the Webcam settings and click on the Advanced tab.
    4. under the Mirror Image, make sure that Horizontal mirror & mirror Vertical is "unchecked".

    To work with this problem, check if Skype and webcam settings.

    In addition, I suggest you to browse, then post the question on Skype help support for better assistance forums

    https://support.Skype.com/

  • Windows Photo Gallery saves the image as a bitmap instead of jpeg

    each picture is saved bitmap bmp instead of jpeg

    three days now library saved all my images as bmp bitmap without title instead of jpeg as it uses to.how do save it as jpeg?

    Hi super1904,

    1. did you of recent changes on the computer?
    2. How do you save the photos?

    Check if the default viewer is defined as the Windows Photo Gallery and also the jpeg, jpg, jpe file types have set of Gallery Windows as the default program to open with.

    1. Open default programs by clicking the Start button, click default programs.
      Default programs, click
    2. Associate a type of file or Protocol with a program. This option allows to refine the default programs based on Protocol or file type. For example, you can have all the .jpg image files open using a specific program, and .bmp image files open using a different program.

    Windows Photo Gallery: frequently asked questions
    http://Windows.Microsoft.com/en-us/Windows-Vista/Windows-Photo-Gallery-frequently-asked-questions

    Change the programs that Windows uses by default
    http://Windows.Microsoft.com/en-us/Windows-Vista/change-which-programs-Windows-uses-by-default

    I hope this helps!

    Halima S - Microsoft technical support.
    Visit our Microsoft answers feedback Forum and let us know what you think.

  • ConnectionFactory.getConnection () returns null.

    ConnectionFactory connFact = new ConnectionFactory();
            ConnectionDescriptor connDesc = null;
            connDesc = connFact.getConnection(----here goes my url String----);
    

    Hi all

    In the code posted above, number In Line 3, reason for which the null value is returned by the statement "connFact.getConnection (- this is my String url-);"   and he is assigned to the variable 'connDesc '.  Although I was able to login successfully before 2 to 3 hours. but it is now return null...

    Could you please help me?

    Best regards,

    Hi Sir,

    After going through the link provided by you (and a few other sup on internet links), I was able to resolve the issue for now... I write the code for other users help here...

    Thank you for your support...

    Best regards.

    // make a list of transport types ordered according to preference (they will be tried in succession)
    int[] preferredTransportTypes = {TransportInfo.TRANSPORT_MDS, TransportInfo.TRANSPORT_WAP2};
    
    // Create ConnectionFactory
    ConnectionFactory factory = new ConnectionFactory();
    
    // Configure the factory
    factory.setPreferredTransportTypes( preferredTransportTypes );
    
    // use the factory to get a connection
    ConnectionDescriptor conDescriptor = factory.getConnection("http://www.blackberry.com");
    
    if ( conDescriptor != null ) {
    
       // connection suceeded
       int transportUsed = conDescriptor.getTransportDescriptor().getTransportType();
    
       // using the connection
       HttpConnection  httpCon = (HttpConnection) conDescriptor.getConnection();
       ...
    }
    
  • PersistentObject.getContents () returns null after app update

    Hello

    I'm trying to track down a bug with PersistentStore.
    Usually when I update the app I get the getContents() stored content.
    However, something in the code has changed from one version to the other and now getContents() returns null.

    I made sure the id has never changed for PersistentStore.getPersistentObject (id);
    I made sure that we use the same basic sdk (4.3.0)
    I made sure that there are the data stored in the stored hash table

    Currently, it's a hash table - no subclass (even though I know that I should change it to a subclass when it's fixed);

    I wonder if there are any suggestions on what might cause the getContents() return null - or which could result in the PersistentStore have cleared.

    What information is needed, please let me know and I'll paste.

    I found the problem after.

    Classes have begun to obscure differently. If the hash table was still readable, but because he could not read the content of the hash table, he would return null.

    It was unexpected, because if you have a custom class persisted and you try to read it, you will get the content, but you can't cast. But with the hash table, it does not return the content (uncastable) and it throws no exceptions...

    I hope this helps someone else who has a similar problem.

  • The body of the message to return null on os 4.5.0.18. When you use getBodyText()

    Hi all

    Today, when I debug my application on 4.5.0.18 device 8130.

    I implements FolderListener, when new messages coming,.

    I grap message object and want to analyze the body of the message to check if the message is what application you are looking for.

    Hoever, when I call Message.getBodyText (). It returns null.

    In fact, there a lot of message in the body of the message.

    is there any sweet experiencing this problem?

    What is work around?

    Thank you.

    getBodyText() will work on 4.5 If the body is 'plain text '. Otherwise, you will need to get the HTML content of the message and extract the text elements.

    See this article:

    http://www.BlackBerry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800698/How_To _...

  • Hash table returns null

    It's the stumping me. I add a key and a value in a hash table, pass in the key and retrieve the value. Basic enough, but when I go to retrieve the value a second time (after the restart of the application), it returns null.

    If it isn't exactly the code that would be the basic scheme:

    class A
    {
         private static Hashtable table = new Hashtable();
    
         public static Object getObject(Class clazz)
         }
              return A.table.get(clazz);
         }
    
         public static void setObject(Class clazz, Object obj)
         }
              A.table.put(clazz, obj);
         }
    
         //Code stuff...
    }
    
    class B
    {
         public static void main(String[] args)
         {
              A.setObject(C.class, new C());
              Object obj = A.getObject(C.class); //This works
         }
    
         //Code stuff...
    }
    
    class C
    {
         //Code stuff...
    }
    

    What happens on the 9550 Simulator and is fixed after restarting the Simulator but work always and only the first time through. If the app is closed, then reopened, then it returns null, even if the hash table was always the same items.

    Ah. When you run the application a second time, he rebuilt serializers to persistent store. Unfortunately, your objects of the class are new instances, so that they cannot be used as persistent hash keys. I suggest you use class names as keys rather than objects of class themselves.

  • LocationProvider.getInstance always returns null

    I'm trying to run a slightly modified version of the application on a BlackBerry 7250 GPSDemo. As my device software is version 4.1, I use the BlackBerry JDE 4.1. No matter what are the parameters for the criteria, I pass in LocationProvider.GetInstance, I always return null. I can run google maps on this unit and get my location, so I'm assuming that the GPS is supported in this regard. Did anyone see any problem with code and/or information on the devices below?

    Wireless blackBerry 7250 (CDMA)

    v4.1.0.353 (Platfor 2.2.0.159)

    The kernel v3.8.3.7 encryption

    The microedition configuration: CLDC-1. 1

    Microedition profile: MIDP-2. 0

    Microedition JTWI Version: 1.0

    Microedition Media Version: 1.1

    Microedition PIM Version: 1.0

    Try
    {
    GpsReceiverCriteria criteria = new Criteria();
    gpsReceiverCriteria.setHorizontalAccuracy (Criteria.NO_REQUIREMENT);
    gpsReceiverCriteria.setVerticalAccuracy (Criteria.NO_REQUIREMENT);
    gpsReceiverCriteria.setCostAllowed (true);
    gpsReceiverCriteria.setPreferredPowerConsumption (Criteria.POWER_USAGE_LOW);
    gpsReceiverCriteria.setAddressInfoRequired (false);

    _locationProvider = LocationProvider.getInstance (gpsReceiverCriteria);
               
    If (_locationProvider is nothing)
    {
    Runnable ShowGpsLocationProviderNull1Dialog = new Runnable()
    {
    public void run()
    {
    Dialog.Alert ("Provider is null - HA: NR VA: NR CA:T PC:L");
    }
    };
    invokeLater (showGpsLocationProviderNull1Dialog);  Ask the event dispatcher thread to display the dialog box as soon as POSSIBLE
    }
       
    gpsReceiverCriteria.setHorizontalAccuracy (Criteria.NO_REQUIREMENT);
    gpsReceiverCriteria.setVerticalAccuracy (Criteria.NO_REQUIREMENT);
    gpsReceiverCriteria.setCostAllowed (false);
    gpsReceiverCriteria.setPreferredPowerConsumption (Criteria.POWER_USAGE_LOW);
    gpsReceiverCriteria.setAddressInfoRequired (false);

    _locationProvider = LocationProvider.getInstance (gpsReceiverCriteria);
               
    If (_locationProvider is nothing)
    {
    Runnable ShowGpsLocationProviderNull2Dialog = new Runnable()
    {
    public void run()
    {
    Dialog.Alert ("Provider is null - HA: NR VA: NR CA:F PC:L");
    }
    };
    invokeLater (showGpsLocationProviderNull2Dialog);  Ask the event dispatcher thread to display the dialog box as soon as POSSIBLE
    }

    _locationProvider = LocationProvider.getInstance (null);
               
    If (_locationProvider is nothing)
    {
    We would like to display a dialog box indicating that the GPS is not supported, but because that
    the event dispatcher thread has not been started yet, modal screens cannot be pushed on
    the battery in the display.  So delay the operation until the event dispatcher thread runs
    asking him to call the executable object following as soon as possible.
    Runnable showGpsUnsupportedDialog = new Runnable() {}
    public void run() {}
    Dialog.Alert ("No receiver GPS on this unit is available, exit...");
    System.Exit (1);
    }
    };
    invokeLater (showGpsUnsupportedDialog);  Ask the event dispatcher thread to display the dialog box as soon as POSSIBLE
    }
    on the other
    {
    only a single listener can be associated with a provider and point it comes to the same
    call, but with the value null, so, no need to cache the listener instance
    request an update every second
    _locationProvider.setLocationListener (new LocationListenerImpl(), _interval, 1, 1);
    retval = true;
    }
    } catch (LocationException) {}
    System.Err.println ("Failed to instantiate the object LocationProvider, exit...");
    System.Err.println (the);
    System.Exit (0);
    }

    Oops... sory. My dyslexia again out of in

    I think that the 7250 has no GPS function at all.

    Yet again, Google it didn't need because they have their own turn cells DB and web services to retrieve the "approximate" location

  • Need help with ics. SQL return null

    Hi experts WCS.

    I have this ics. SQL statement that returns an IList as null and nothing in the errStr in debugging print.

    IList rsATypes is ics. SQL (, sqlATypes, listName, limit, bCache errStr);

    The code is in one of my jsp. He ran very well in my local JSK (HyperSQL Db), but returns NULL in the case of Test (Oracle DB, if this is another).

    I got the sql statement println during execution and run it directly in Oracle DB (same instance) it returns the expected result set.

    The code snippet:

      System.out.println("## ics.GetSSVar(\"pubid\")          : " + ics.GetSSVar("pubid"));
    
        // Get Attribute Types
        String sqlATypes = "SELECT DISTINCT assetpublication.assettype "
                         + "FROM assetpublication "
                         + "LEFT JOIN approvedassets "
                         + "    ON assetpublication.assetid = approvedassets.assetid "
                         + "WHERE pubid = '" + ics.GetSSVar("pubid") + "' "
                         + "AND (tstate is null OR tstate <> 'A') "
                         + "AND (voided is null OR voided <> 'T') "
                         + "ORDER BY assettype; ";
        System.out.println("##0126 sqlATypes : " + sqlATypes);
        String from = "AssetPublication, ApprovedAssets";
        // String listName = null;
        String listName = "ATypesList";
        int limit = -1;
        // boolean bCache = true;
        boolean bCache = false;
        StringBuffer errStr = new StringBuffer("");
        ics.ClearErrno();
        IList rsATypes = ics.SQL(from, sqlATypes, listName, limit, bCache, errStr);
    
        System.out.println("## rsATypes : " + rsATypes);
        if (rsATypes == null) {
            System.out.println("## NO DATA in rsATypes! errStr : " + errStr.toString());
    

    }

    The journal:

    ## ics.GetSSVar("pubid")          : 1374097570685
    ## sqlATypes : SELECT DISTINCT assetpublication.assettype FROM assetpublication LEFT JOIN approvedassets     ON assetpublication.assetid = approvedassets.assetid WHERE pubid = '1374097570685' AND (tstate is null OR tstate <> 'A') AND (voided is null OR voided <> 'T') ORDER BY assettype;
    ## rsATypes : null
    ## NO DATA in rsATypes! errStr :
    


    I got enclosing try catch block, who did not take any exception.


    The funny thing is, in the same piece of code, an ics. Casea used already worked (which I noticed outside because there was not enough for what I want to do):

            StringBuffer errSB = new StringBuffer("");
            ics.SetVar("assetid", id);
            IList approvedAsset = ics.SelectTo("ApprovedAssets", "state,voided,tstate,locked,reason,treason", "assetid", null, -1, null, true, errSB);
    

    Any help/ideas from anyone would be really appreciated.

    Thanks Guddu1223, I discovered why.

    The SQL statement cannot end with a semicolon (see line 11 of my original above codes). Delete who had back all the records provided for in my resultset in the IList.

    The reason why it works in my local, but not stable instance that I guess is my local JSK + HyperSQL, in WCS + Oracle DB instance trying...

  • OAMessageStyledTextBean getText() or GetValue returns null

    Description of the problem

    ---------------------------------------------------

    Hello

    I try to retrieve a value from the field messagestyledText on the standard page R12.

    When I use the code below in the extended controller, it returns null. However a code works fine in another page.

    Please, advise.

    Thank you.

    ' Public Sub processFormRequest (OAPageContext oapagecontext, OAWebBean oawebbean)

    {

    OAMessageStyledTextBean oamessagestyledtextbean = (OAMessageStyledTextBean) oawebbean.findChildRecursive ("SubmitComments");

    String s1 = oamessagestyledtextbean.getText (oapagecontext);

    String s2 = (String) oamessagestyledtextbean.getValue (oapagecontext);

    String message = "s1 =" "s1 + s2 plus" + s2;

    throw new OAException (message, OAException.WARNING);

    }

    Thank you... Yes, in fact, he was placed by one of the oapagecontext.getTransactionValue... problem solved. I am able to get a value of oapagecontext.getTransactionValue now

  • DataBind method call returns null in the WebCenter content filtering

    Hello

    I got code that has a problem and I am new to the WebCenter content and filters that can be added. We have a FileNameFilter class that begins with the code

    / public class CWEFileNameFilter implements FilterImplementor {}

    public CWEFileNameFilter() {}

    Super();

    }

    public int doFilter (workspace workspace, DataBinder dataBinder,

    ExecutionContext executionContext) throw {DataException

    Service string = dataBinder.getLocal ("IdcService");

    ....

    }

    }

    However, service is sometimes return null and then filter throws a NPE.

    My questions are:

    (1) can we explain what dataBinder.getLocal ("IdcService"); is done and why it might come back as null

    (2) anyone can provide links to documentation that explains the filters and a little more on the object DataBinder as the JavaDoc is not much help.

    Thank you
    Marc

    Hi Marc,

    Below the code will give the name of the service for which the filter is implemented LocalData

    Service string = dataBinder.getLocal ("IdcService");

    for example below

    http://localhost:16200/cs/idcplg? IdcService = DOC_INFO_BY_NAME & dDocName = 1111111 & IsJava

    This example displays the entire response including localdata data and results that are created in the execution of the service. Here is the code snippet

    LocalData @Properties

    DocUrl =https://localhost:16200/cs/weblayout/groups/secure/documents/test/mhdk/mjg1/1111111.pdf

    IdcService = DOC_INFO_BY_NAME

    If String = dataBinder.getLocal ("IdcService") service; Service = "DOC_INFO_BY_NAME."

    Under blog will give an idea about the filter but the best place to learn or start is "The Definitive Guide to Stellent Content Server Development" by Brian Huff

    http://www.redstonecontentsolutions.com/technical-blog/UCM-service-handlers-and-javafilters

    Also, I recommend reading ' WebCenter Content Services Reference Guide '

    http://docs.Oracle.com/CD/E23943_01/doc.1111/e11011/TOC.htm

    Kind regards

    Amol Germain.

  • APEX_ITEM. DATE_POPUP returns NULL Version 4.2.6

    I apologize in advance if I'm misunderstanding here, but should not return the following query a few HTML, etc. ?

    SELECT APEX_ITEM. DATE_POPUP (1, rowNum, to_date(sysdate,'DD-mm-YYYY'), 'DD-mm-YYYY') date_html

    OF the double

    I am confirming my queries through SQL Developer first and then plan to add to a report of the APEX for a manual form.  APEX_ITEM. TEXT Returns HTML can be used in SQL Developer, but I can't understand why APEX_ITEM. DATE_POPUP returns NULL regardless of any parameter combinations I try.  Thanks in advance for the answers.

    user10730448 wrote:

    Please update your forum profile with a recognizable username instead of "user10730448": Video tutorial how to change username available

    I apologize in advance if I'm misunderstanding here, but should not return the following query a few HTML, etc. ?

    SELECT APEX_ITEM. DATE_POPUP (1, rowNum, to_date(sysdate,'DD-mm-YYYY'), 'DD-mm-YYYY') date_html

    OF the double

    Do not apply to_date conversion sysdate . It's already a DATE value.

    I am confirming my queries through SQL Developer first and then plan to add to a report of the APEX for a manual form.  APEX_ITEM. TEXT Returns HTML can be used in SQL Developer, but I can't understand why APEX_ITEM. DATE_POPUP returns NULL regardless of any parameter combinations I try.

    It is the expected behavior. Some API calls can be used successfully since in a valid session of APEX. You can validate apex_item.date_popup query in the APEX SQL Workshop. Note that apex_item.date_popup2 is the recommended method because it shows a more modern jQuery calendar.

  • Debugging inaccessible FacesException:Target, 'bean' returned null

    Hi all

    Jdev: 11.1.1.7.1

    We have a living ADF application that worked very well until installing a recent where a flow is the break with the message "inaccessible FacesException:Target, 'bean' returned null. It works very well in our UAT and our production environment is clustered.

    StackTrace

    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: javax.faces.FacesException, msg=#{pageFlowScope.xyzBean.showCaseDetails}: Target Unreachable, 'xyzBean' returned null
    Supplemental Detail    at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:417)
    at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:479)
    at com.wellsfargo.common.view.WFExceptionHandler.handleException(WFExceptionHandler.java:57)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._handleException(LifecycleImpl.java:1380)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:211)
    .....
    ..
    ## Detail 0 ##
    javax.faces.FacesException: #{pageFlowScope.xyzBean.showCaseDetails}: Target Unreachable, 'xyzBean' returned null
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
    at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
    at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:280)
    

    Guidance on how to debug what appears not a problem with scope as our UAT works very well.

    We were finally able to reproduce the problem in our local instance.

    Regarding the cause, the view behind the UI object, the research doesn't have the right keys. As a result, selection on the table was selecting two rows on the search results. By clicking on the commandlink, it seems that two events of Action are put in queue and after that the first action event navigates successfully, the second is pulled and fails.

Maybe you are looking for