Salut,
J'ai un problème d'accès concurrent à mon programme. C'est une application développé en Icefaces, quand je lance mon application toute seule, je teste toutes les structures il y a aucun problème.
En gros j'ai des structures qui gére l'affichage d'une dataTable. Chaque ligne de la dataTable peut ouvrir une popup ou avoir des childs, qu'on peut développer grâce au +.
L'utilisateur peut aussi ouvrir la même fenêtre en full screen grâce à un bouton adéquat. C'est là où les problèmes commencent. en effet, de temps en temps qu'on je clique sur un champs de ma dataTable pour ouvrir une popup, j'ai ce genre d'exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
javax.faces.FacesException: Problem in renderResponse: /OrderBook.jspx @272,80 rendered="#{orderBook.expandedable}": Error getting property 'expandedable' from bean of type com.ulnet.memberarea.web.OrderBook.OrderBookBean: java.lang.IllegalArgumentException
le code qui correspond à cette exception est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
	public  boolean getExpandedable()
    {
		if ( rowDataModel != null 
				&& rowDataModel.getRowData() instanceof Tblorder) {
	        Tblorder order = (Tblorder)rowDataModel.getRowData();
	        if ( order != null)
	        	return order.isExpanded();
			}
        return false;
    }
J'ai essayé de rajoute des synchronized dans toutes les méthodes susceptibles d'accès concurrents mais le problème persiste. A vrai dire je comprend même pas pour quoi il y aurait problème d'accès concurrent, car je me contente de lire des données ...
Aussi j'ai un autre probléme cette fois avec le dataPaginator, qui marche plus, (dans la fenêtre full screen) .
Voici le code de ma popup qui me cause le plus de problèmes
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<ice:panelPopup visible="#{orderBook.visiblePopupTrade}"
	draggable="true"
	styleClass="icePnlPop3"
	modal="false">
 
	<f:facet name="header">
		<ice:panelGrid 
		   style = "text-align : right;"	
                   width = "100%" cellpadding = "0"
                   cellspacing="0" columns = "1" >
                   <ice:commandButton image="img/closePopup.gif"
				action = "#{orderBook.closeTradePopup}"
				title = "Close this draggable popup" 
				immediate = "true" />
                   </ice:panelGrid>
	</f:facet>
 
	<f:facet name="body">
		<ice:panelGroup >
			<ice:panelGroup style="width:710px">
				<ice:panelGrid width="200px" 
					cellpadding="0"
					cellspacing="0">
 
					<ice:dataTable value="#{orderBook.rowDataModelTrades}" 
						var="trade"
						id="tradeTable" 
						rows="10" cellpadding="0"
						styleClass="tradeTable" 
						>
 
						<ice:columns 
							value="#{orderBook.headerNameTrades}"
							var="column"
							rendered="true">
							<f:facet name="header">
								<ice:outputText style="text-decoration:underline;color:gray; " 
									value="#{column}" />
							</f:facet>
							<ice:panelGroup >
		                       <ice:outputText value="#{orderBook.cellValueTrades}" />
		                    </ice:panelGroup>
						</ice:columns>
					</ice:dataTable>
				</ice:panelGrid>
			</ice:panelGroup>
			<center>
				<br/>
				<ice:dataPaginator  id="tradepaginator" for="tradeTable"
					binding="#{orderBook.tradePaginator}"
					paginator="true" fastStep="3" 
					paginatorMaxPages="4" renderFacetsIfSinglePage="false"
					styleClass="OLPgr">
					<f:facet name="first">
						<ice:graphicImage url="/img/first_btn.jpg"
							styleClass="OLPgrScrBtn" title="First Page" />
					</f:facet>
					<f:facet name="last">
						<ice:graphicImage url="/img/last_btn.jpg"
							styleClass="OLPgrScrBtn" title="Last Page" />
					</f:facet>
					<f:facet name="previous">
						<ice:graphicImage
							url="/img/previous_btn.jpg"
							styleClass="OLPgrScrBtn" title="Previous Page" />
					</f:facet>
					<f:facet name="next">
						<ice:graphicImage url="/img/next_btn.jpg"
							styleClass="OLPgrScrBtn" title="Next Page" />
					</f:facet>
				</ice:dataPaginator>
			</center>
		</ice:panelGroup>	
	</f:facet>
 
</ice:panelPopup>
Ah oui j'ai déja le concurrentDOMViews à true dans mon web.xml

Si vous avez des remarques n'hésitez à me faire part.
Merci beaucoup