Bug 779931 (SOA-2296)

Summary: Deploying a VDB when a previous version already is deployed should not produce a stack trace, but should offer the user assistance
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Paul Nittel <pnittel>
Component: EDSAssignee: Steven Hawkins <shawkins>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.1.0.ER1   
Target Milestone: ---   
Target Release: 5.1.0.ER3   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2296
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
All
Last Closed: 2010-11-01 15:38:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Paul Nittel 2010-09-08 21:33:37 UTC
project_key: SOA

It's a pretty mainstream use case for a user to iteratively deploy, modify, and re-deploy VDBs. Presently, the redeployment of a VDB generates the stack trace shown below. If we do not want to blindly overwrite the previous version, can we instead notify the user and ask if they want to overwrite it and them help them do so.

To me, a user seeing a stack trace under this circumstance is unwarranted.

Error 2010-09-08 10:42:09.444 Problem deploying VDB: YooHoo.vdb to server: mm://localhost:31443
[AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
1 [AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
2 [AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
3 [AdminProcessingException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
4 [RuntimeException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
5 [SyncFailedException]Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:72)
        at org.teiid.net.socket.SocketServerConnection$ServerConnectionInvocationHandler.invoke(SocketServerConnection.java:239)
        at $Proxy2.deployVDB(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.teiid.adminapi.AdminFactory$ReconnectingProxy.invoke(AdminFactory.java:102)
        at $Proxy2.deployVDB(Unknown Source)
        at org.teiid.designer.runtime.ExecutionAdmin.deployVdb(ExecutionAdmin.java:121)
        at org.teiid.designer.runtime.ui.DeployVdbAction.deployVdb(DeployVdbAction.java:132)
        at org.teiid.designer.runtime.ui.DeployVdbAction.run(DeployVdbAction.java:81)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Caused by: [AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
1 [AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
2 [AdminProcessingException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
3 [RuntimeException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
4 [SyncFailedException]Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:72)
        at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler.invoke(SocketServerInstanceImpl.java:363)
        at $Proxy2.deployVDB(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.teiid.net.socket.SocketServerConnection$ServerConnectionInvocationHandler.invoke(SocketServerConnection.java:227)
        ... 38 more
Caused by: [AdminComponentException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
1 [AdminProcessingException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
2 [RuntimeException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
3 [SyncFailedException]Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:72)
        at org.teiid.jboss.deployers.RuntimeEngineDeployer$1.invoke(RuntimeEngineDeployer.java:253)
        at $Proxy357.deployVDB(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.teiid.transport.ServerWorkItem.run(ServerWorkItem.java:81)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:189)
        at org.teiid.transport.SocketClientInstance.processMessagePacket(SocketClientInstance.java:160)
        at org.teiid.transport.SocketClientInstance.receivedMessage(SocketClientInstance.java:149)
        at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:210)
        at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
        at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:144)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:214)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:340)
        at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:272)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:192)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: [AdminProcessingException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
1 [RuntimeException]java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
2 [SyncFailedException]Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.teiid.adminapi.jboss.ManagedUtil.execute(ManagedUtil.java:295)
        at org.teiid.adminapi.jboss.ManagedUtil.deployArchive(ManagedUtil.java:235)
        at org.teiid.adminapi.jboss.ManagedUtil.deployArchive(ManagedUtil.java:222)
        at org.teiid.adminapi.jboss.Admin.deployVDB(Admin.java:186)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.teiid.logging.LogManager$LoggingProxy.invoke(LogManager.java:121)
        at org.teiid.jboss.deployers.RuntimeEngineDeployer$1.invoke(RuntimeEngineDeployer.java:247)
        ... 33 more
Caused by: java.lang.RuntimeException: java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.jboss.profileservice.management.client.upload.StreamingDeploymentTarget.transferDeployment(StreamingDeploymentTarget.java:286)
        at org.jboss.profileservice.management.client.upload.StreamingDeploymentTarget.distribute(StreamingDeploymentTarget.java:106)
        at org.jboss.profileservice.management.client.upload.DeploymentProgressImpl.distribute(DeploymentProgressImpl.java:178)
        at org.jboss.profileservice.management.client.upload.DeploymentProgressImpl.run(DeploymentProgressImpl.java:83)
        at org.teiid.adminapi.jboss.ManagedUtil.execute(ManagedUtil.java:290)
        ... 42 more
Caused by: java.io.SyncFailedException: Deployment content already exists: /home/pnittel/SOA51ER1/jboss-soa-p.5/jboss-as/server/default/deploy/YooHoo.vdb
        at org.jboss.system.server.profileservice.repository.BasicDeploymentRepository.addDeploymentContent(BasicDeploymentRepository.java:177)
        at org.jboss.profileservice.management.upload.remoting.AbstractDeployHandler.handleStream(AbstractDeployHandler.java:288)
        at org.jboss.profileservice.management.upload.remoting.AbstractDeployHandler.handleStream(AbstractDeployHandler.java:63)
        at org.jboss.remoting.ServerInvoker.handleInternalInvocation(ServerInvoker.java:1841)
        at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:917)
        at org.jboss.remoting.transport.local.LocalClientInvoker.invoke(LocalClientInvoker.java:106)
        at org.jboss.remoting.Client.invoke(Client.java:2034)
        at org.jboss.remoting.Client.invoke(Client.java:877)
        at org.jboss.remoting.Client.invoke(Client.java:1756)
        at org.jboss.profileservice.management.client.upload.StreamingDeploymentTarget.transferDeployment(StreamingDeploymentTarget.java:277)
        ... 46 more

Comment 1 Barry LaFond 2010-09-09 14:22:13 UTC
I've got a As 5.1 GA installed, Teiid 7.1 and Designer 7.1 running and my Re-Deploy works for me.

Ran simple Parts example, deployed VDB, queried. Changed SQL on transformation. Saved, synced VDB, re-deployed, requeried.

I don't have entitlements on. Plain vanilla server.

Comment 2 Paul Nittel 2010-09-09 15:41:08 UTC
It appears to be in some way related to the deployment of Teiid in SOA-P. I tried this in JBoss AS with 7.1.x Teiid from today's build (9/9/2010) and it deployed the second VDB without any exceptions in either the server or  Designer.

Comment 3 Paul Nittel 2010-09-10 13:34:56 UTC
Security: Added: Public


Comment 4 Steven Hawkins 2010-09-14 20:36:23 UTC
resolved as part of TEIID-1256.  Since Teiid will appropriately clean up in the event of an overwritten VDB there's no need for a restriction.

Comment 5 Steven Hawkins 2010-10-04 14:30:33 UTC
Should already be resolved for ER2 due to TEIID-1256

Comment 6 Paul Nittel 2010-11-01 15:38:29 UTC
Tested with ER3 and closed.