[ 
https://issues.apache.org/jira/browse/JXPATH-205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Samuel Zihlmann updated JXPATH-205:
-----------------------------------
    Description: 
Since version 1.4.0 JXPath size() of an uninitialized array return 1 instead of 0

In version 1.3 following unittest did work:
{code:java}
@Test
public void testSize() {
    Foo foo = new Foo();
    foo.setTitle("title");
    Bar bar = new Bar();
    //bar.setWords(List.of("Bla", "Bli", "Blub"));
    //bar.setWords(List.of("Bla"));
    foo.setBar(bar);

    JXPathContext fallCtx = JXPathContext.newContext(foo);
    String query = "size(bar/words)";
    Object result = fallCtx.getValue(query);
    Assert.assertEquals(0, result);
}

public static class Foo {

    private Bar bar;
    private String title;

    public Bar getBar() {
        return bar;
    }

    public void setBar(Bar bar) {
        this.bar = bar;
    }

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

}

public static class Bar {

    private List<String> words;

    public List<String> getWords() {
        return words;
    }

    public void setWords(List<String> words) {
        this.words = words;
    }
}{code}
Result Version 1.4.0:
{code:bash}
java.lang.AssertionError: 
Expected :0
Actual   :1
{code}

  was:
Since version 1.4.0 JXPath size() of a uninitialized array return 1 instead of 0

In version 1.3 following unittest did work:
{code:java}
@Test
public void testSize() {
    Foo foo = new Foo();
    foo.setTitle("title");
    Bar bar = new Bar();
    //bar.setWords(List.of("Bla", "Bli", "Blub"));
    //bar.setWords(List.of("Bla"));
    foo.setBar(bar);

    JXPathContext fallCtx = JXPathContext.newContext(foo);
    String query = "size(bar/words)";
    Object result = fallCtx.getValue(query);
    Assert.assertEquals(0, result);
}

public static class Foo {

    private Bar bar;
    private String title;

    public Bar getBar() {
        return bar;
    }

    public void setBar(Bar bar) {
        this.bar = bar;
    }

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

}

public static class Bar {

    private List<String> words;

    public List<String> getWords() {
        return words;
    }

    public void setWords(List<String> words) {
        this.words = words;
    }
}{code}
Result Version 1.4.0:
{code:bash}
java.lang.AssertionError: 
Expected :0
Actual   :1
{code}


> JXPath size() of a uninitialized array return 1 instead of 0
> ------------------------------------------------------------
>
>                 Key: JXPATH-205
>                 URL: https://issues.apache.org/jira/browse/JXPATH-205
>             Project: Commons JXPath
>          Issue Type: Bug
>    Affects Versions: 1.4.0
>            Reporter: Samuel Zihlmann
>            Priority: Major
>
> Since version 1.4.0 JXPath size() of an uninitialized array return 1 instead 
> of 0
> In version 1.3 following unittest did work:
> {code:java}
> @Test
> public void testSize() {
>     Foo foo = new Foo();
>     foo.setTitle("title");
>     Bar bar = new Bar();
>     //bar.setWords(List.of("Bla", "Bli", "Blub"));
>     //bar.setWords(List.of("Bla"));
>     foo.setBar(bar);
>     JXPathContext fallCtx = JXPathContext.newContext(foo);
>     String query = "size(bar/words)";
>     Object result = fallCtx.getValue(query);
>     Assert.assertEquals(0, result);
> }
> public static class Foo {
>     private Bar bar;
>     private String title;
>     public Bar getBar() {
>         return bar;
>     }
>     public void setBar(Bar bar) {
>         this.bar = bar;
>     }
>     public String getTitle() {
>         return title;
>     }
>     public void setTitle(String title) {
>         this.title = title;
>     }
> }
> public static class Bar {
>     private List<String> words;
>     public List<String> getWords() {
>         return words;
>     }
>     public void setWords(List<String> words) {
>         this.words = words;
>     }
> }{code}
> Result Version 1.4.0:
> {code:bash}
> java.lang.AssertionError: 
> Expected :0
> Actual   :1
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to