atom feed4 messages in net.java.dev.glassfish.adminRe: ActionReport cause not set on bea...
FromSent OnAttachments
Joe Di PolSep 28, 2010 10:49 am 
Jerome DochezSep 28, 2010 9:29 pm 
Joe Di PolSep 29, 2010 8:46 am 
Carla MottSep 29, 2010 10:38 am 
Subject:Re: ActionReport cause not set on bean validation failure?
From:Joe Di Pol (joe.@oracle.com)
Date:Sep 29, 2010 8:46:12 am
List:net.java.dev.glassfish.admin

Jerome Dochez wrote:

do you know when it stopped working ?

Looks like it is due to r41084, a change to GenericCreateCommand.java I can fix that.

A related problem I see in the execute() method is that when handling exceptions it includes e.toString() when creating the error message for the ActionReport. Seems like it should do something like:

ExceptionUtil.getRootCause(e).getMessage()

Since typically the most interesting text is in the lowest level cause.

Thoughts?

Joe

On Sep 28, 2010, at 10:49 AM, Joe Di Pol wrote:

When bean validation fails on the Node config bean the resulting ActionReport does not have the exception set.

For example create-node-config does this:

public void execute(AdminCommandContext context) { ActionReport report = context.getActionReport();

CommandInvocation ci = cr.getCommandInvocation("_create-node", report); ParameterMap map = new ParameterMap(); . . . ci.parameters(map); ci.execute();

After the ci.execute() if there was a bean validation failure then report.getFailureCause() returns null instead of the exception and report.getMessage() returns:

"Exception while adding the new configuration
org.jvnet.hk2.config.TransactionFailure: Injection failed on public abstract
void com.sun.enterprise.config.serverbeans.Node.setName(java.lang.String) throws
java.beans.PropertyVetoException"

I'm pretty sure this use to work (the exception was set on the ActionReport). FYI here is the trace from the log file of the exception I'd expect to see set in the ActionReport.

Anybody know if anything changed?

Thanks,

[#|2010-09-28T10:27:36.105-0700|SEVERE|glassfish3.1|javax.enterprise.system.tools.admin.org.glassfish.config.support|_ThreadID=16;_ThreadName=Thread-1;|Exception
while adding the new configuration org.jvnet.hk2.config.TransactionFailure:
Injection failed on public abstract void
com.sun.enterprise.config.serverbeans.Node.setName(java.lang.String) throws
java.beans.PropertyVetoException org.jvnet.hk2.config.TransactionFailure: Injection failed on public abstract
void com.sun.enterprise.config.serverbeans.Node.setName(java.lang.String) throws
java.beans.PropertyVetoException at org.jvnet.hk2.config.ConfigSupport._apply(ConfigSupport.java:203) at org.jvnet.hk2.config.ConfigSupport.apply(ConfigSupport.java:133) at org.jvnet.hk2.config.ConfigSupport.apply(ConfigSupport.java:112) at
org.glassfish.config.support.GenericCreateCommand.execute(GenericCreateCommand.java:140) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:365) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:375) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1072) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:101) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1221) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1210) at
com.sun.enterprise.v3.admin.cluster.CreateNodeConfigCommand.execute(CreateNodeConfigCommand.java:93) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:375) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1072) at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:101) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1221) at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1210) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:375) at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209) at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:234) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:824) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:721) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1014) at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:220) at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:530) at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:511) at java.lang.Thread.run(Thread.java:619) Caused by: org.jvnet.hk2.component.ComponentException: Injection failed on
public abstract void
com.sun.enterprise.config.serverbeans.Node.setName(java.lang.String) throws
java.beans.PropertyVetoException at org.jvnet.hk2.component.InjectionManager.inject(InjectionManager.java:212) at org.jvnet.hk2.component.InjectionManager.inject(InjectionManager.java:102) at
org.glassfish.config.support.GenericCreateCommand$1.run(GenericCreateCommand.java:145) at org.jvnet.hk2.config.ConfigSupport$1.run(ConfigSupport.java:115) at org.jvnet.hk2.config.ConfigSupport._apply(ConfigSupport.java:174) ... 35 more Caused by: java.lang.reflect.InvocationTargetException 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.jvnet.hk2.component.InjectionManager.inject(InjectionManager.java:197) ... 39 more Caused by: java.lang.RuntimeException: org.jvnet.hk2.config.ValidationException:
Constraints for this bean violated. Message = name must match "[\p{L}\p{N}_][\p{L}\p{N}\-_./;#]*" at org.jvnet.hk2.config.WriteableView.setter(WriteableView.java:183) at org.jvnet.hk2.config.WriteableView.invoke(WriteableView.java:139) at $Proxy79.setName(Unknown Source) ... 44 more Caused by: org.jvnet.hk2.config.ValidationException: Constraints for this bean
violated. Message = name must match "[\p{L}\p{N}_][\p{L}\p{N}\-_./;#]*" at org.jvnet.hk2.config.WriteableView.handleValidation(WriteableView.java:665) at org.jvnet.hk2.config.WriteableView.setter(WriteableView.java:180) ... 46 more |#]