You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Axel Mannhardt (JIRA)" <ji...@apache.org> on 2008/10/20 19:37:44 UTC

[jira] Issue Comment Edited: (TAP5-135) Grid.getSortContraints NPE when sortColumnId != null

    [ https://issues.apache.org/jira/browse/TAP5-135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12641078#action_12641078 ] 

amannhardt edited comment on TAP5-135 at 10/20/08 10:37 AM:
----------------------------------------------------------------

We are affected when using a workaround for default sorting. Basically we update the grid sort constraints if none are set. That works with Tapestry 5.0.14, but fails in 5.0.15 with a Nullpointer because initialization changed. Used is now "dataModel" (instead of "model" previously) which is initialized on setupRender -  too late for the example below.


 here is an example:


public class Index
{

    private BeanModel<TestRow> _testModel;

    @Inject
    private BeanModelSource _beanModelSource;
    
    @Inject
    private Messages _messages;
    
    @Component(id="testGrid")
    private Grid _grid;
    
    private List<TestRow> _testSource = new ArrayList<TestRow>();
    {
        _testSource.add(new TestRow("c"));
        _testSource.add(new TestRow("a"));
        _testSource.add(new TestRow("b"));
    }
    
    public static class TestRow {
        private String _testCol;
        public TestRow(String s) {
            _testCol = s;
        }
        public String getTestCol() {
            return _testCol;
        }
        public void setTestCol(String testCol) {
            _testCol = testCol;
        }
    }
    
    public void setupRender() {
        _testModel = _beanModelSource.create(TestRow.class, false, _messages);
        if ( _grid.getSortModel().getSortContraints().isEmpty() ) {
            _grid.getSortModel().updateSort("testCol");
        }
    }
    
    public List<TestRow> getTestSource() {
        return _testSource;
    }
    public void setTestSource(List<TestRow> testSource) {
        this._testSource = testSource;
    }
    public BeanModel<TestRow> getTestModel() {
        return _testModel;
    }
}


public class Index
{

    private BeanModel<TestRow> _testModel;

    @Inject
    private BeanModelSource _beanModelSource;
    
    @Inject
    private Messages _messages;
    
    @Component(id="testGrid")
    private Grid _grid;
    
    private List<TestRow> _testSource = new ArrayList<TestRow>();
    {
        _testSource.add(new TestRow("c"));
        _testSource.add(new TestRow("a"));
        _testSource.add(new TestRow("b"));
    }
    
    public static class TestRow {
        private String _testCol;
        
        public TestRow(String s) {
            _testCol = s;
        }

        public String getTestCol() {
            return _testCol;
        }

        public void setTestCol(String testCol) {
            _testCol = testCol;
        }
    }
    
    public void setupRender() {
        
        _testModel = _beanModelSource.create(TestRow.class, false, _messages);
        
        if ( _grid.getSortModel().getSortContraints().isEmpty() ) {
            _grid.getSortModel().updateSort("testCol");
        }
    }
    
    
    public List<TestRow> getTestSource() {
        return _testSource;
    }
    public void setTestSource(List<TestRow> testSource) {
        this._testSource = testSource;
    }
    public BeanModel<TestRow> getTestModel() {
        return _testModel;
    }
}

-------

[...]
    	<t:grid
    		t:id="testGrid"
    		t:source="testSource"
    		t:model="testModel"/> 
[...]


      was (Author: amannhardt):
    We are affected when using a workaround for default sorting, here is an example:


public class Index
{

    private BeanModel<TestRow> _testModel;

    @Inject
    private BeanModelSource _beanModelSource;
    
    @Inject
    private Messages _messages;
    
    @Component(id="testGrid")
    private Grid _grid;
    
    private List<TestRow> _testSource = new ArrayList<TestRow>();
    {
        _testSource.add(new TestRow("c"));
        _testSource.add(new TestRow("a"));
        _testSource.add(new TestRow("b"));
    }
    
    public static class TestRow {
        private String _testCol;
        public TestRow(String s) {
            _testCol = s;
        }
        public String getTestCol() {
            return _testCol;
        }
        public void setTestCol(String testCol) {
            _testCol = testCol;
        }
    }
    
    public void setupRender() {
        _testModel = _beanModelSource.create(TestRow.class, false, _messages);
        if ( _grid.getSortModel().getSortContraints().isEmpty() ) {
            _grid.getSortModel().updateSort("testCol");
        }
    }
    
    public List<TestRow> getTestSource() {
        return _testSource;
    }
    public void setTestSource(List<TestRow> testSource) {
        this._testSource = testSource;
    }
    public BeanModel<TestRow> getTestModel() {
        return _testModel;
    }
}


public class Index
{

    private BeanModel<TestRow> _testModel;

    @Inject
    private BeanModelSource _beanModelSource;
    
    @Inject
    private Messages _messages;
    
    @Component(id="testGrid")
    private Grid _grid;
    
    private List<TestRow> _testSource = new ArrayList<TestRow>();
    {
        _testSource.add(new TestRow("c"));
        _testSource.add(new TestRow("a"));
        _testSource.add(new TestRow("b"));
    }
    
    public static class TestRow {
        private String _testCol;
        
        public TestRow(String s) {
            _testCol = s;
        }

        public String getTestCol() {
            return _testCol;
        }

        public void setTestCol(String testCol) {
            _testCol = testCol;
        }
    }
    
    public void setupRender() {
        
        _testModel = _beanModelSource.create(TestRow.class, false, _messages);
        
        if ( _grid.getSortModel().getSortContraints().isEmpty() ) {
            _grid.getSortModel().updateSort("testCol");
        }
    }
    
    
    public List<TestRow> getTestSource() {
        return _testSource;
    }
    public void setTestSource(List<TestRow> testSource) {
        this._testSource = testSource;
    }
    public BeanModel<TestRow> getTestModel() {
        return _testModel;
    }
}

-------

[...]
    	<t:grid
    		t:id="testGrid"
    		t:source="testSource"
    		t:model="testModel"/> 
[...]

Works with Tapestry 5.0.14, fails in 5.0.15 with a Nullpointer because initialization changed. Used is now "dataModel" (instead of "model" previously) which is initialized on setupRender -  too late for the above.



  
> Grid.getSortContraints NPE when sortColumnId != null
> ----------------------------------------------------
>
>                 Key: TAP5-135
>                 URL: https://issues.apache.org/jira/browse/TAP5-135
>             Project: Tapestry 5
>          Issue Type: Bug
>    Affects Versions: 5.0.15
>            Reporter: Andy Huhn
>
> After I click the header of a grid column to sort by that header, I receive a NPE from Grid.getSortContraints.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org