[jbosstools-dev] Re: [Bug 257470] ComponentCore in WTP 3.0.3 isn't compatible with earlier 3.0.x versions

Denny Xu dxu at redhat.com
Mon Dec 22 04:21:58 EST 2008


Snjezana Peco wrote:
> The same patch I proposed to you two weeks ago 
> http://lists.jboss.org/pipermail/jbosstools-dev/2008-December/002525.html
Yes, Snijeza, have not applied the patch just because want to know if 
WTP team has a better solution for the API change,  for now,
your solution is the best ;-)

Denny
>
> Snjeza
>
> Denny Xu wrote:
>> WTP team suggested the way to create VirtualComponent, so should I 
>> get the changes applied to CR1 branch?
>> It seems that they would not like to recover the behavior  
>> "ComponentCore.createComponent(project)" method.
>>
>> Denny
>>
>>
>> bugzilla-daemon at eclipse.org wrote:
>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257470  
>>> Product/Component: WTP Common Tools / wst.common
>>>
>>>
>>>
>>>
>>> --- Comment #12 from Carl Anderson <ccc at us.ibm.com>  2008-12-18 
>>> 16:30:58 -0400 ---
>>> As per Max's comment #4, in the scenario where developers wish to call
>>> VirtualComponent.create(int, IProgressMonitor) to create the 
>>> appropriate
>>> component file, the following code is acceptable:
>>>
>>> VirtualComponent c = ComponentCore.createComponent(project);
>>> if(c==null) {
>>>         c = ComponentCore.createComponent(project, false);
>>> }
>>> c.create(0, null);
>>>
>>> This code should work properly if it is compiled against WTP 3.0.3 
>>> (or later),
>>> and should run properly against all WTP 3.0.x versions.
>>>
>>> Now, what would not be advisable would be for developers to replace 
>>> every
>>> previous instance of:
>>>
>>> VirtualComponent c = ComponentCore.createComponent(project);
>>>
>>> with:
>>>
>>> VirtualComponent c = ComponentCore.createComponent(project);
>>> if(c==null) {
>>>         c = ComponentCore.createComponent(project, false);
>>> }
>>>
>>> as that would once again open up the same hole for possible component
>>> corruption that was closed down by bug 250004.  The problem that was 
>>> occurring,
>>> as stated in comment #5, was that, in some scenarios, access to the
>>> VirtualComponent through ComponentCore.createComponent(project), 
>>> (which come
>>> from many adopters as well as WTP code) where it was not checking 
>>> for the
>>> existance of the component file was causing the creation of an empty 
>>> component
>>> model , thus causing the appearance of an inconsistent files dialog and
>>> component corruption.  Therefore, in all scenarios other than the 
>>> initial
>>> component creation scenario (which is the only scenario broken by 
>>> the change in
>>> bug 250004), WTP code and adopters should call either
>>> ComponentCore.createComponent(project) or
>>> ComponentCore.createComponent(project, true).
>>>
>>>
>>>   
>>
>> _______________________________________________
>> jbosstools-dev mailing list
>> jbosstools-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>
>




More information about the jbosstools-dev mailing list