Multiple selection in table not returning all selected rows

I am unable to obtain multiple selected rows from a table. I only get a single row no matter how many I select.
I have the following table
<af:table value="#{bindings.TargetSelectorTargets1.collectionModel}"
var="row"
rows="#{bindings.TargetSelectorTargets1.rangeSize}"
emptyText="#{bindings.TargetSelectorTargets1.viewable ? 'No data to display.' : 'Access Denied.'}"
fetchSize="#{bindings.TargetSelectorTargets1.rangeSize}"
rowBandingInterval="0"
filterModel="#{bindings.ImplicitViewCriteriaQuery2.quickQueryDescriptor}"
queryListener="#{bindings.ImplicitViewCriteriaQuery2.processQuery}"
filterVisible="true" varStatus="vs"
selectedRowKeys="#{bindings.TargetSelectorTargets1.collectionModel.selectedRow}"
selectionListener="#{bindings.TargetSelectorTargets1.collectionModel.makeCurrent}"
rowSelection="multiple"
partialTriggers="::qryId1" id="t3"
styleClass="AFStretchWidth"
binding="#{testbean.targetselectortable}">
<af:column sortProperty="Name" filterable="true"
sortable="true"
headerText="#{bindings.TargetSelectorTargets1.hints.Name.label}"
id="c2">
<af:outputText value="#{row.Name}" id="ot33"/>
</af:column>
<af:column sortProperty="Type" filterable="true"
sortable="true"
headerText="#{bindings.TargetSelectorTargets1.hints.Type.label}"
id="c11">
<af:outputText value="#{row.Type}" id="ot34"/>
</af:column>
</af:table>
and I have the following bean method to get the selected rows
RowKeySet rks = targetselectortable.getSelectedRowKeys();
Iterator itr = rks.iterator();
Object key;
while(itr.hasNext())
key = (Object)itr.next(); targetselectortable.setRowKey(key);
Object o = targetselectortable.getRowData();
JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding) o;
Row row = rowData.getRow();
System.out.println(row.getAttribute("Name").toString());
and I only get one row.
Note: selectedRowKeys="#{bindings.TargetSelectorTargets1.collectionModel.selectedRow}"
shows a warning that "reference selectedRow" not found.
Can I do something to make it work?

can u change the logic like
RowKeySet rowSet = targetselectortable.getSelectedRowKeys();
Iterator rowSetIter = rowSet.iterator();
> while (rowSetIter.hasNext()) {
> List l = (List)rowSetIter.next();
> Key key = (Key)l.get(0);
>
FacesContext fc = FacesContext.getCurrentInstance();> BindingContainer bindings =
> (BindingContainer)fc.getApplication().evaluateExpressionGet(fc,
> "#{bindings}",
> BindingContainer.class);
>
DCBindingContainer bindings = (DCBindingContainer)bindings ;> DCIteratorBinding iter =
> bindings.findIteratorBinding("TargetSelectorTargets1Iterator");
>
> iter.setCurrentRowWithKey(key.toStringFormat(true));
> Row r = iter.getCurrentRow();
> System.out.println(row.getAttribute("Name").toString());
> }

Similar Messages

  • RowSetIterator not returning all the rows

    Hi,
    We have a use-case where we need to create a new row iterator to insert rows(values) in it. Immediately after insertRow(), we are reading the values by creating a secondary row set iterator (createRowSetIterator) but it is not returning all the inserted rows. Here is the code snippet:
    Code to insert rows:
    public void insertTerrLineOfBusiness(CreateOperation operation, TerritoryVORowImpl newTerritoryRow, TerritoryVORowImpl selectedRow){     
    if((operation.equals(CreateOperation.CREATE))
    || operation.equals(CreateOperation.COPY)
    || operation.equals(CreateOperation.ADD_EXISTING)){
    RowIterator selTerritoryLineOfBusinessIter = selectedRow.getTerritoryLineOfBusiness();
    //RowIterator newTerrLineOfBusinessIter = newTerritoryRow.getTerritoryLineOfBusiness();
    ViewRowSetImpl newTerrLineOfBusinessIter = (ViewRowSetImpl) newTerritoryRow.getTerritoryLineOfBusiness();
    newTerrLineOfBusinessIter.setAssociationConsistent(true);
    while(selTerritoryLineOfBusinessIter.hasNext()){
    TerritoryLineOfBusinessVORowImpl selTerrLineOfBusinessRow =
    (TerritoryLineOfBusinessVORowImpl)selTerritoryLineOfBusinessIter.next();
    TerritoryLineOfBusinessVORowImpl newTerrLineOfBusinessRow =
    (TerritoryLineOfBusinessVORowImpl)newTerrLineOfBusinessIter.createRow();
    newTerrLineOfBusinessRow.setTerritoryVersionId(newTerritoryRow.getTerritoryVersionId());
    newTerrLineOfBusinessRow.setLobCode(selTerrLineOfBusinessRow.getLobCode());
    newTerrLineOfBusinessIter.insertRow(newTerrLineOfBusinessRow);
    Code to read:
    public List getTerritoryLobsValues() {
    List <String> lobsValues = new ArrayList<String>();
    if (this.getTerritory().getCurrentRow() != null) {
    TerritoryVORowImpl territoryVORowImpl =
    (TerritoryVORowImpl)this.getTerritory().getCurrentRow();
    if(territoryVORowImpl.getTerritoryLineOfBusiness() != null){
    ViewRowSetImpl territoryLob =
    (ViewRowSetImpl)territoryVORowImpl.getTerritoryLineOfBusiness();
    RowSetIterator itr = territoryLob.createRowSetIterator(null);
    if(itr!=null){
    while(itr.hasNext()) {
    Row r = itr.next();
    String lobCode = (String)r.getAttribute("LobCode");
    lobsValues.add(lobCode);
    itr.closeRowSetIterator();
    return lobsValues;
    Can anybody suggest what could be the issue? How to fix it?
    Thanks,
    Akhila

    Thanks for your response.
    Jdev version:
    Primary == FUSIONAPPS_PT.V1REL6INT_LINUX.X64_120719.0800 (Primary Product for the view)
    Primary depends on FMWTOOLS == FMWTOOLS_11.1.1.6.0_GENERIC_120112.0037.2
    FMWTOOLS depends on label == JDEVADF_11.1.1.6.0_GENERIC_111205.1733.6192.1
    The above label originated from base label == JDEVADF_11.1.1.6.0_GENERIC_111205.1733.6192
    Use case: We have a tree table, each record may or may not have Line of Business(LOB) associated with it. On creating a child node in the tree table, the child node copies all the attributes of parent. These attributes are not committed explicitly, if user wants to save the child node only then the attributes are committed.
    Giving secondary rowSetIterator a name did not help in resolving this issue.
    If I am calling postChanges() before reading from secondary row iterator then its returning all the inserted values. But this.getTransaction().postChanges() is a JAudit violation, so cannot use it:
    RuleId: apps-jbo-category.File.AdfModel.54
    Rule: insertTerrLineOfBusiness - Review DBTransaction.postChanges call to ensure passivation-safety
    Any pointers on this?

  • How to display multiple selected rows in a table inside a popup?

    Hi,
    I have a table on which multiple selection is enabled. I am able to get hold of multiple selected rows i.e. i am able to iterate over the selected row keys and print their values. Now, my problem is how to display the contents of all the selected rows in a popup? I get the details of only one row when I launch the popup.
    Thanks
    Karan

    Hi,
    Not confident if this works or not but just try it...
    1. create a ViewLink between the same view Object.
    The source and destination wil be the same Vo and the source and destination attribute will be the pk of both Vos.
    2. Update the changes in Appln Module.
    Open the AM and in DataModel tab .
    select the Same VO from which you created table in the DataModel Listbox and select the VL in the "Avaible View Objects" List Box. Add under it(selected vo in datamodel listbox).
    3. Refresh DataControl accordion.
    4. in your jsff page drag and drop the child vo as a table..
    See if it works
    Regards,
    Santosh.

  • Loop Not Returning All Rows

    I finally need to turn to the forum after trying for a few days to resolve my problem I decide to turn to the Oracle people for help.
    The following code below does two things:
    1. If I have the get_menu_label in side of it's own loop it never returns
    2. If I take the get_menu_label out side of it's own loop it returns but does not return all the data.
    DECLARE
    -- GETTING THE DATABASE NAME
    CURSOR get_db_name
    IS
    SELECT DATABASE
    FROM uaf_mfgp_menus_and_groups_vm
    GROUP BY DATABASE
    ORDER BY DATABASE ASC;
    -- GETTING THE OBJECT_ID FOR EACH DATABASE
    CURSOR get_object_id_db (l_db_name VARCHAR2)
    IS
    SELECT object_id
    FROM UAF_FORM_OBJECTS
    WHERE object_label_2 = l_db_name;
    -- GETTING THE GROUP NAME
    CURSOR get_gp_name
    IS
    SELECT group_name
    FROM uaf_mfgp_menus_and_groups_vm
    GROUP BY group_name
    ORDER BY group_name ASC;
    -- GETTING THE OBJECT_ID FOR GROUP WITH GP NAME AND DATABASE
    CURSOR get_object_id_gp (l_gp_name VARCHAR2, db_id NUMBER)
    IS
    SELECT object_id
    FROM UAF_FORM_OBJECTS
    WHERE object_label_2 = l_gp_name AND parent_object_id = db_id;
    -- GETTING MENU LABEL
    CURSOR get_menu_label (l_db_name VARCHAR2, l_gp_name VARCHAR2)
    IS
    SELECT menu_label
    FROM uaf_mfgp_menus_and_groups_vm
    WHERE DATABASE = l_db_name AND group_name = l_gp_name;
    got_object_id_db NUMBER (20);
    got_object_id_gp NUMBER (20);
    got_db VARCHAR2 (100);
    got_menu_label VARCHAR2 (200);
    BEGIN
    FOR c1 IN get_db_name
    LOOP
    FOR c2 IN get_gp_name
    LOOP
    OPEN get_object_id_db (c1.DATABASE);
    FETCH get_object_id_db
    INTO got_object_id_db;
    OPEN get_object_id_gp (c2.group_name, got_object_id_db);
    FETCH get_object_id_gp
    INTO got_object_id_gp;
              CLOSE get_object_id_db;
    CLOSE get_object_id_gp;
    OPEN get_menu_label (c1.DATABASE, c2.group_name);
    LOOP
    FETCH get_menu_label
    INTO got_menu_label;
    END LOOP;
    CLOSE get_menu_label;
    DBMS_OUTPUT.put_line ( 'GP_OBJECT_ID= '
    || got_object_id_gp
    || ' '
    || 'MENU_LABEL= '
    || got_menu_label
    END LOOP;
    END LOOP;
    END;
    /

    Javier, this the wrong way to use PL/SQL. Oracle SQL can do all this for you using JOINs.
    This code, even if it did work, would be terrible slow - unable to scale with data volumes.
    This code breaks a few fundamental Oracle rules:
    - row-by-row processing using PL/SQL
    - huge number of context swicthes per PL/SQL loop iteration
    - not maximizing SQL and minimizing PL/SQL
    I suggest you trash this code and write a SQL JOIN instead.

  • Business Objects is not returning all rows from Query

    We set the rowcount to 1000000 and the business objects query only returns 16,960 rows.  We then uncheck the limit for the rowcount and the first run of the query returns 65,535.  The subsequent run of the query returns all the rows which is greater than 65,535.  We are on release 6.1A of business objects and selecting from Microsoft SQLServer 2005 in 2000 compatablility mode. We noticed that the rowcount being sent to SQLServer is replacing the set number with the 65,535 the first time the query is sent and subsiquent queries have the correct rowcount set.  What would be causing the rowcount to be reset and how can it be fixed?

    We set the rowcount to 1000000 and the business objects query only returns 16,960 rows.  We then uncheck the limit for the rowcount and the first run of the query returns 65,535.  The subsequent run of the query returns all the rows which is greater than 65,535.  We are on release 6.1A of business objects and selecting from Microsoft SQLServer 2005 in 2000 compatablility mode. We noticed that the rowcount being sent to SQLServer is replacing the set number with the 65,535 the first time the query is sent and subsiquent queries have the correct rowcount set.  What would be causing the rowcount to be reset and how can it be fixed?

  • Parameter not returning all values

    I have a crystal report built off an oracle DB.  For one parameter it is not returning all values.  I can display data or the entire table it shows me all values, but when i build a parameter it only shows me through August.  It is a date/time field.

    check the following thread
    [Dynamic Parameter only showing 1000 records when Crystal report is run.;
    regards,
    Raghavendra.G

  • Why are some of my calendar appointments synching, some synch multiple times and others not at all?

    why are some of my calendar appointments synching, some synch multiple times and others not at all?

    iTunes: May be unable to transfer videos to iPhone, iPad, or iPod - http://support.apple.com/kb/TS1497

  • API Not returning all RTMP ingest endpoints

    The web portal shows both URLs for RTMP
    rtmp://etcetc.channel.mediaservices.windows.net:1935/live/...
    rtmp://etcetc.channel.mediaservices.windows.net:1936/live/...
    but the API (ex - myChannel.Input.Endpoints) only returns a single one (...:1935).
    Any reason why the web portal and the API don't return the same info?

    Hi,
    According to your post, my understanding is that Search is not returning all STS_Web.
    You need to set the Trim Duplicates to false, please follow the steps as below:
    Export the Search Results Web Part from your page.
    Open the .webpart file in your favorite editor.
    Search for “Trim Duplicates”, you will find it as part of the DataProviderJSON property.
    Set the Trim Duplicates property to
    False.
    Upload the web part.
    Add the web part to your page.
    More information:
    SharePoint Online Search Results Duplicates “Trap”:
    http://www.hartsteve.com/2013/07/sharepoint-online-search-results-duplicates-trap/
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • REUSE_ALV_GRID_DISPLAY_LVC not returning all of entered changes in T_OUTTAB

    Have 4 columns in IT_FIELDCAT_LVC marked with EDIT  = 'X'. T_OUTTAB is examined in I_CALLBACK_USER_COMMAND.  Only the first keyed fields are returned.  The number of fields returned with the keyed changes varies.  Could not find a relevant SAP note.

    Found that a double-click anywhere on the report reliably returns all entered changes.  An added button on the application toolbar did not return all entered changes.
    Edited by: Jim Gebhardt on Nov 11, 2008 11:11 PM

  • Web proxy not returning all elements

    Web proxy generated over a web service does not return all elements of an array. Testing of the web service on the application server results in three detail elements. However executing the web proxy only results in the first element being processed. Not sure where the disconnect is when generating the response object. Any suggestion is appreciated.
    Edited by: bstegen on Jul 29, 2009 12:53 PM

    Hi,
    I have also tried using 'Web Service Data Control' as an alternate method to overcome the above mentioned issue. But I have ended up the error "DCA-29000: Unexpected exception caught: java.lang.NullPointerException,msg=null" and failed to create a data control.
    The JDeveloper version which I am using is 11.1.1.5.0. I also came to know that there is a patch (9790388) which has resolved this bug in JDeveloper. I also applied the same patch in my Oracle Home using OPatch utility.
    But unfortunatley, the version suitable for this patch is 11.1.1.4.0 and I suspected that could be one of the reason that the problem has not got resolved yet.
    Please suggest the patch or any solution which can also help me in resolving this issue. I really appreciate your time and effort in sharing your thoughts for the problems which I have mentioned over here.
    Thank you !!!
    With Regards,
    Thiyagarajan V

  • ALV not showing all the rows! Please help!

    Hi Experts,
         I have webdynpro ALV report and I am using SALV_WD_TABLE as the reusable component. In component controller's WDDOINIT I have written the code for pulling teh data from R/3 table and binding it to ALV table.
    In the view's WDDOMODIFYVIEW event I have written the following code to get subtotal and grand total of Qty column based on product column.
          I have coded like this:
          lr_field_settings ?= l_value.
    lr_field = lr_field_settings->get_field( 'PRODUCT' ).
    lr_field->if_salv_wd_sort~set_group_aggregation_allowed( ABAP_TRUE ).
    lr_field->if_salv_wd_sort~create_sort_rule( ).
    l_sortrule = lr_field->if_salv_wd_sort~GET_SORT_RULE(  ).
    l_sortrule->set_sort_order( if_salv_wd_c_sort=>sort_order_ascending ).
    l_sortrule->set_group_aggregation( ABAP_TRUE ).
    *...Aggregate Field PRODUCT
    lr_field = lr_field_settings->get_field( 'QTY' ).
    lr_field->if_salv_wd_aggr~create_aggr_rule( ).
    lr_aggr_rule = lr_field->if_salv_wd_aggr~get_aggr_rule(  ).
    lr_aggr_rule->set_aggregation_type( if_salv_wd_c_aggregation=>aggrtype_total ).
    It is working now but my ALV table is not showing all the rows. I have 6 products and it is showing from product 2. But it is calculating grand total and subtotal correctly. I am not able to see the first product row and subtotal for that. Even if I click on the ^ icon in the ALV table below it is not showing all the rows.
    What could be the problem?
    Please help
    Thanks
    Gopal

    did you somehow manage to set the "first visible row" property on table object
    to 2.   Only thing I can think of that could cause this effect.
    Cheers
    Phil

  • InfoPath form load rule is not checking all the rows in form library

    Hi,
    Requirement:
    We have a form library named "HR Annual Review". In the InfoPath form we have two buttons "Save" and "Submit". User is allowed to Save multiple times and only once using Submit button. The file name of form library "HR
    Annual Review" will be stored in the format “<username>+<mm>+<dd>+<yy>.xml”. Say for example, an user named Mike Walt submitted a form then the file name will be as “MikeWalt012314.xml”. If the same user (Mike Walt)
    submits the form and tries to open the form for subsequent edit, then we need to show a view which has an error info saying “The Appraisal is already submitted for the current appraisal cycle”.
    Solution we tried:
    To achieve the above requirement, we tried using InfoPath Form Load and add a rule to check whether the combination of current user name and the year already exists in the filename column of the form library. But the rule we applied is not checking all the
    rows in the form library. The rule is always checking the first row of the form library.
    What we need:
    We need the validation using InfoPath rule or some other way/solution to check whether the combination of current login username and current year file already exists in the form library.
    Thanks in advance.
    Srivignesh J

    Hi Srivignesh,
    Submit button Uses the Main Data connection to submit the data to the list. This is what you are using and naming the file in the format. You can create secondary data submit that will update the exiting item in the list. With this, you don't have to create
    any rules to check all the rows which is also not possible in OOB InfoPath.
    Once you have the two data connection, hide the toolbar from the form and display these two on the button. For The Submit button, apply the rule to hide the button if created by is not empty. For Save button, apply the rule to hide the button if Created
    By is empty. This way, when a new form is created, you will see the Submit button, and when the user have to update the form, they will see Save button. Hope it help.s
    Regards, Kapil ***Please mark answer as Helpful or Answered after consideration***

  • Procedure Does not return expected new rows unless I ALTER the procedure it self

    Procedure Does not return expected new rows !!!   unless I ALTER the procedure it self

    And what exactly do you alter, the code / where clause / or ...?
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • OBIEE - Using Multiple Select Rows In Grid As Parameters

    Hello All,
    First post from an OBI Newbie. I am getting used to creating dashboards and have got my head around drilling with values, but I have a user requirement that I am not sure is possible.
    A standard query returns the following datagrid information ("," = column divider):
    Product Id, Product Description, Colour, Total Sales
    1, Chair, Red, 4
    2, Chair, Blue, 3
    3, Chair, Black, 5
    I know that I can enable a drill on a specific colour to give a datagrid such as (if Red Selected):
    Order Reference, Product Id, Product Description, Colour, Units
    687678657, 1, Chair, Red, 3
    687678658, 1, Chair, Red, 1
    The user requirement is to select multiple rows (possible by holding Ctrl) and to then effectively "drill" with the multiple selected values. Eg Red, Blue:
    Order Reference, Product Id, Product Description, Colour, Units
    687678657, 1, Chair, Red, 3
    687678658, 1, Chair, Red, 1
    687678660, 2, Chair, Blue, 3
    I presume that a separate report will be required, but I am not sure how to trigger and/or pass the multiple product id's. Can anyone help with a solution?
    Edited by: 885689 on 16-Sep-2011 06:27

    I got this working by changing the signature of the Application Module method to use ArrayList rather than String[], then you can marshal the Struts FormBean contents into an ArrayList to pass up.
    To do this, subclass the DataAction by using "Go To Code" off of the context menu and then override the initializeMethodParameters() method:
      protected void initializeMethodParameters(DataActionContext actionContext, JUCtrlActionBinding actionBinding)
        //Get the String Array from the Form Bean
        String[] selection = (String[])((DynaActionForm)actionContext.getActionForm()).get("multiSelect");
        //convert that to an ArrayList
        ArrayList selectionArr = new ArrayList( Arrays.asList(selection));
        //Add that object to the Arg List for the AM method
        ArrayList params = new ArrayList();
        params.add(selectionArr);
        actionBinding.setParams(params);
      }

  • Table not returning correct information

    We had a problem where doing a select count(*) returned a number, but then when a select * was issued not rows were returned. Many iterations were tried. Some returning rows and others not. Then when trying to truncate FK errors occurred. Does anyone know what might have been the problem? Our solution was to drop and re-create the tables. This was in a test environment, but we don't want this to happen in production.
    Thanks.

    Something doesn't sound right to me. I haven't seen this happen in our Oracle databases but have seen this happen with a DB2 database
    when an index was corrupt. The solution was to rebuild the index in that case. I'd issue a statement to validate the structure of the table
    and its indexes:
    analyze table table_name validate structure cascade;
    From the 8.1.7 SQL manual:
    VALIDATE STRUCTURE
    Specify VALIDATE STRUCTURE to validate the structure of the analyzed object. The statistics collected by this clause are not used by the Oracle optimizer, as are
    statistics collected by the COMPUTE STATISTICS and ESTIMATE STATISTICS clauses.
    For a table, Oracle verifies the integrity of each of the table's data blocks and rows.
    For a cluster, Oracle automatically validates the structure of the cluster's tables.
    For a partitioned table, Oracle also verifies that each row belongs to the correct partition. If a row does not collate correctly, its rowid is inserted into the
    INVALID_ROWS table.
    For a temporary table, Oracle validates the structure of the table and its indexes during the current session.
    For an index, Oracle verifies the integrity of each data block in the index and checks for block corruption. This clause does not confirm that each row in the table
    has an index entry or that each index entry points to a row in the table. You can perform these operations by validating the structure of the table with the
    CASCADE clause (described below).
    Oracle stores statistics about the index in the data dictionary views INDEX_STATS and INDEX_HISTOGRAM.
    See Also: Oracle8i Reference for information on these views
    Validating the structure of an object prevents SELECT, INSERT, UPDATE, and DELETE statements from concurrently accessing the object. Therefore, do not use this
    clause on the tables, clusters, and indexes of your production applications during periods of high database activity.
    If Oracle encounters corruption in the structure of the object, an error message is returned to you. In this case, drop and re-create the object.
    INTO table
    Specify a table into which Oracle lists the rowids of the partitions whose rows do not collate correctly. If you omit schema, Oracle assumes the list is in
    your own schema. If you omit this clause altogether, Oracle assumes that the table is named INVALID_ROWS. The SQL script used to create this table
    is UTLVALID.SQL.
    CASCADE
    Specify CASCADE if you want Oracle to validate the structure of the indexes associated with the table or cluster. If you use this clause when validating a
    table, Oracle also validates the table's indexes. If you use this clause when validating a cluster, Oracle also validates all the clustered tables' indexes,
    including the cluster index.
    If you use this clause to validate an enabled (but previously disabled) function-based index, validation errors may result. In this case, you must rebuild the
    index.

Maybe you are looking for

  • Message Driven Bean Not Working

    I'm trying to make run in WebLogic 7 an MDB, it seems well configured, in the XML descriptor ,JNDI names of the destination and the ConnectionFactory correspond respectively to a destination wich I have created after having created a JMS server in WB

  • Does ALDSP 2.5 supports INOUT cursor??

    Hi, We are using ALDSP 2.5 and trying to connect to oracle stored procs. Some of these stored procs have INOUT Cursor, INPUT cursor and associate array types. Does ALDSP 2.5 supports this?? If not please let me know whether other versions support thi

  • Photoshop CS5 Cursor Problem

    I'm having a problem with my cursors since I installed CS5 - they still work in CS3, so I don't really know how to resolve it. Whenever I make my brushes larger than, say, 400px, I lose all cursor definition and can't find the center of my cursor. I

  • Is there a way to ungroup podcasts in a Station?

    Specifically, I would like all unplayed podcasts to be listed in chronological order, as it was before the latest update, and not grouped by podcast.

  • MBA 2012 shut down time

    What is the normal range of shutting down a MBA 2012, mine seams not right