dev@glassfish.java.net

URGENT: ACTION: Nandina Ektare: Latest JSR-303 breaks some things

From: Ed Burns <Ed.Burns_at_Sun.COM>
Date: Mon, 27 Jul 2009 18:35:17 -0700

Mitesh, if you see this message, there's an FYI for you at the end.

>>>>> On Mon, 27 Jul 2009 17:21:27 -0700, Ed Burns <Ed.Burns_at_Sun.COM> said:

>>>>> On Mon, 27 Jul 2009 17:09:31 -0700, Ed Burns <Ed.Burns_at_Sun.COM> said:
EB> I've created an SVN tag for the latest source drop of JSR-303 from
EB> JBoss, per the instructions at [1]. The tag is

EB> http://mercurial.sfbay.sun.com/svn/glassfish/tags/bean-validator-3.0-JBoss-4.0.0.Beta2-b01

EB> STOP THE PRESSES. Mitesh alerted me to a problem with this binary.

EB> Please hold off. I'll have a new tag.

Turns out the new release from JBoss does have some problems.

Nandini, I built glassfishv3 HEAD from a fresh svn checkout today,
dropped in the latest OSGi jar that I generated from the latest source
from jboss [1], and started it up. Sadly, I received this exception:

EVERE: Exception in command execution : java.lang.NullPointerException
java.lang.NullPointerException
        at org.hibernate.validation.xml.ValidationXmlParser.getInputStreamForPath(ValidationXmlParser.java:234)
        at org.hibernate.validation.xml.ValidationXmlParser.getValidationConfig(ValidationXmlParser.java:207)
        at org.hibernate.validation.xml.ValidationXmlParser.parseValidationXml(ValidationXmlParser.java:61)
        at org.hibernate.validation.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.java:187)
        at org.hibernate.validation.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:116)
        at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:109)
        at org.jvnet.hk2.config.WriteableView.<init>(WriteableView.java:77)
        at org.jvnet.hk2.config.ConfigSupport.getWriteableView(ConfigSupport.java:202)
        at org.jvnet.hk2.config.ConfigSupport.apply(ConfigSupport.java:338)
        at com.sun.enterprise.v3.admin.SetCommand.execute(SetCommand.java:237)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$4.execute(CommandRunnerImpl.java:422)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:437)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:524)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:140)
        at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:313)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:180)
        at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:208)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:752)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:660)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:911)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:164)
        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.NIOContext.execute(NIOContext.java:510)
        at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:357)
        at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:257)
        at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:194)
        at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:129)
        at com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork(FixedThreadPool.java:379)
        at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:360)
        at java.lang.Thread.run(Thread.java:637)

Nandini, can you help me debug this? Replace bean-validator.jar in your
modules directory with [1] and start up glassfish. I've placed the
javadocs for this version at [2].

[1] http://javaweb.sfbay.sun.com/~edburns/bean-validator.jar

[2] http://javaweb.sfbay.sun.com/~edburns/bean-validator-1.0CR3/index.html



P.S. Mitesh. The jar at [1] does have the API you're looking for:

bash-3.00$ javap -s -classpath bean-validator.jar javax.validation.TraversableResolver
Compiled from "TraversableResolver.java"
public interface javax.validation.TraversableResolver{
public abstract boolean isReachable(java.lang.Object, javax.validation.Path$Node, java.lang.Class, javax.validation.Path, java.lang.annotation.ElementType);
  Signature: (Ljava/lang/Object;Ljavax/validation/Path$Node;Ljava/lang/Class;Ljavax/validation/Path;Ljava/lang/annotation/ElementType;)Z
public abstract boolean isCascadable(java.lang.Object, javax.validation.Path$Node, java.lang.Class, javax.validation.Path, java.lang.annotation.ElementType);
  Signature: (Ljava/lang/Object;Ljavax/validation/Path$Node;Ljava/lang/Class;Ljavax/validation/Path;Ljava/lang/annotation/ElementType;)Z
}