Salut à tous,

Je suis la tuto pour développer une page applicative.

J'ai copié le code (à la main pour comprendre ce que je fais) et j'ai une NullPointerException sur la boucle qui parcourt mes collections.

J'ai ajouté un try catch qui ne fait rien dans le catch pour voir et je n'ai aucune collection qui s'affiche (donc, je suppose que le problème conerne toutes les collections).

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            SPSecurity.RunWithElevatedPrivileges(AddressOf GetItems)
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
       'Trouve tous les items créé par un utilisateur dans la ferme
Private Sub GetItems()
            Dim CurrentUser As New SPFieldUserValue(Me.Web, Me.Web.CurrentUser.ID, Me.Web.CurrentUser.Name)
            Dim ResultList As New ArrayList
            Dim ThisFarm As SPFarm = SPFarm.Local
            Dim Service As SPWebService = ThisFarm.Services.GetValue(Of SPWebService)("")
            Dim WebApp As SPWebApplication = Nothing
            For Each WebAppl In Service.WebApplications
                Dim SiteCollection As SPSite
                Try
                    For Each SiteCollection In WebApp.Sites
                        Dim Web As SPWeb
                        For Each Web In SiteCollection.AllWebs
                            Dim Lists As SPListCollection = Web.Lists
                            Dim List As SPList
                            For Each List In Lists
                                Dim Item As SPItem
                                Try
                                    For Each Item In List.Items
                                        If Item(DropDownList1.SelectedValue).ToString = CurrentUser.ToString Then
                                            ResultList.Add(Item)
                                        End If
                                    Next
                                Catch ex As Exception
                                    'S'il y a une erreur, ne rien faire et passer à la liste suivante
                                End Try
                            Next
                        Next
                    Next
                Catch ex As Exception
                    'S'il y a une erreur, ne rien faire et passer à la collection suivante
                End Try
            Next
        End Sub
Voici celui de la procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Private Sub GetItems()
    Dim CurrentUser As New SPFieldUserValue _
        (Me.Web, Me.Web.CurrentUser.ID, Me.Web.CurrentUser.Name)
 
    Dim ResultsList As New ArrayList()
 
    Dim ThisFarm As SPFarm = SPFarm.Local
    Dim Service As SPWebService = _
        ThisFarm.Services.GetValue(Of SPWebService)("")
 
    Dim WebApp As SPWebApplication
    For Each WebApp In Service.WebApplications
        Dim SiteCollection As SPSite
        For Each SiteCollection In WebApp.Sites
            Dim Web As SPWeb
            For Each Web In SiteCollection.AllWebs
                Dim Lists As SPListCollection = Web.Lists
                Dim List As SPList
                For Each List In Lists
                    Dim Item As SPListItem
                    Try
                        For Each Item In List.Items
                            If Item(DropDownList1.SelectedValue).ToString() = _
                                CurrentUser.ToString() Then
                                ResultsList.Add(Item)
                            End If
                        Next Item
                    Catch exception As Exception
                        'Error in list. Move on to the next list.
                    End Try
                Next List
            Next Web
        Next SiteCollection
    Next WebApp
    CreateResultsTable(ResultsList)
End Sub


J'ai essayé de voir la différence (à part mon try catch, hein!) mais je ne vois pas ce qui cloche.

Est-ce que c'est le code du site qui a une faille ou bien est-ce que c'est moi qui ai mal tapé mon code?

Si vous voulez bien jeter un oeil...

Merci d'avance.