NullPointerException при парсинге ошибки в CancelPreapprovalResponse в PayPal X GAE Toolkit

Вообще говоря и отмена preapproval платежа не работает, но это другой вопрос, а вот при попытке распарсить сообщение об ошибке библиотека выкидывает NullPointerException. Происходит это потому, что для массива, куда складываются сообщения, не выделена память.

На трекер запостил, но пока ещё не добавили в репозиторий — ловите патч.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 Index: src/com/paypal/adaptive/api/responses/CancelPreapprovalResponse.java
===================================================================
--- src/com/paypal/adaptive/api/responses/CancelPreapprovalResponse.java    (revision 13)
+++ src/com/paypal/adaptive/api/responses/CancelPreapprovalResponse.java    (working copy)
@@ -17,6 +17,13 @@
    protected ResponseEnvelope responseEnvelope;
    protected ArrayList<payerror> payErrorList;
 
+   /**
+    * @return the payErrorList
+    */
+   public ArrayList<payerror> getPayErrorList() {
+       return payErrorList;
+   }
+  
     /**
      * Gets the value of the responseEnvelope property.
      *
@@ -29,6 +36,13 @@
         return responseEnvelope;
     }
 
+   /**
+    * @param payErrorList the payErrorList to set
+    */
+   public void setPayErrorList(ArrayList<payerror> payErrorList) {
+       this.payErrorList = payErrorList;
+   }
+  
     /**
      * Sets the value of the responseEnvelope property.
      *
@@ -39,7 +53,7 @@
      */
     public void setResponseEnvelope(ResponseEnvelope value) {
         this.responseEnvelope = value;
-    }
+    } 
 
     public CancelPreapprovalResponse(String responseString){
       
@@ -52,7 +66,8 @@
        }
 
        responseEnvelope = new ResponseEnvelope(preapprovalDetailsResponseParams);
-              
+      
+       payErrorList = new ArrayList<payerror>();
        // we will parse 10 errors for now
        for(int i = 0; i &lt; 10; i++){
            if(preapprovalDetailsResponseParams.containsKey("error(" + i +").errorId")){