Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[bpel-dev] Bug of copy/paste the node has children nodes

Hi, guys.
I need help to fix a bug. The following is about bug and some exploration.
When copy and paste the node has children node, pasting action produces
redundant children nodes.
For example, if you copy node like :

<bpel:if name="If">
    <bpel:sequence>
        <bpel:invoke name="Invoke"/>
    </bpel:sequence>
    <bpel:elseif/>
    <bpel:elseif/>
</bpel:if>

when you paste it, you may got this:

<bpel:if name="If3">
    <bpel:sequence>
	<bpel:invoke name="Invoke"></bpel:invoke>
    </bpel:sequence>

    <bpel:elseif></bpel:elseif>
    <bpel:elseif></bpel:elseif>
    <bpel:elseif></bpel:elseif>
    <bpel:elseif></bpel:elseif>

    <bpel:sequence>
	<bpel:invoke name="Invoke"></bpel:invoke>
    </bpel:sequence>

     <bpel:elseif></bpel:elseif>

    <bpel:sequence>
       <bpel:invoke name="Invoke"></bpel:invoke>
    </bpel:sequence>

</bpel:if>

You may not get the same result in every copying and pasting operation.
The result is not expected. I try to fix the bug, so I explore the BPELCopyAction and BPELPasteAction in package org.eclipse.bpel.ui.actions. At first, I thought the problem may have connection with BPELPasteCommand in package org.eclipse.bpel.ui.commands. The related code is BPELPasteCommand's doExcute() method, here is the code:

	public void doExecute() {
		TransferBuffer transferBuffer = fBpelEditor.getTransferBuffer();
		fPastedObjects  = transferBuffer.copyTransferBuffer(fTargetObject, fBpelEditor.getExtensionMap(),fReference );
	}

After I read the code of the method TransferBuffer.copyTransferBuffer, I found the method copy the source node model to the target node model. I thought the model copying may cause this bug. But after explore detail in  TransferBuffer.copyContentsTo method, I found the there is nothing wrong in model copying, or I missed something? If the model copying is right, may be problem arise when model being serialized to xml. I cannot find the relative code, any hints may be help.
Thanks!

grovecai





Back to the top