[JBoss JIRA] (WELD-1037) IllegalStateException when redirecting from system event in JSF managed bean
by Kristof Vanbecelaere (Created) (JIRA)
IllegalStateException when redirecting from system event in JSF managed bean
----------------------------------------------------------------------------
Key: WELD-1037
URL: https://issues.jboss.org/browse/WELD-1037
Project: Weld
Issue Type: Bug
Components: Web Tier integration (JSF, JSP, EL and Servlet)
Affects Versions: 1.1.2.Final
Environment: JBoss AS7
Reporter: Kristof Vanbecelaere
I have a view with a system event like so
<f:metadata>
<f:event type="preRenderView" listener="#{fileUploadBean.checkAccessToken}" />
</f:metadata>
the listener is just a faces managed bean and performs a redirect using FacesContext.getCurrentInstance().getExternalContext().redirect(...);
This leads to an exception. When I disable Weld by removing the empty beans.xml file the redirect works fine.
java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:436)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170)
org.jboss.weld.servlet.ConversationPropagationFilter$1.sendRedirect(ConversationPropagationFilter.java:90)
com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:576)
org.dirtybxl.upload.FileUploadBean.redirectToAuthenticationEntrypoint(FileUploadBean.java:105)
org.dirtybxl.upload.FileUploadBean.checkAccessToken(FileUploadBean.java:87)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:196)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:131)
javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2508)
javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2129)
com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2077)
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:286)
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:244)
org.jboss.as.weld.webtier.jsf.ForwardingApplication.publishEvent(ForwardingApplication.java:293)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (WELD-1081) Weld crashes when attempting to read
by Sam Corbett (JIRA)
Sam Corbett created WELD-1081:
---------------------------------
Summary: Weld crashes when attempting to read
Key: WELD-1081
URL: https://issues.jboss.org/browse/WELD-1081
Project: Weld
Issue Type: Bug
Components: Reflection layer
Environment: Weld 1.1.6-SNAPSHOT, Groovy 1.8.6
Reporter: Sam Corbett
The Groovy compiler generates invalid class names for classes representing a Groovy closure inside an inner class (see [GROOVY-5351|http://jira.codehaus.org/browse/GROOVY-5351]). This bug causes Weld to crash when calling WeldClassImpl.isAnonymousClass(). While Weld can't help Groovy's behaviour, it shouldn't crash either.
The classes we have that cause this are:
{code}
brooklyn.event.adapter.JmxNotificationAdapter$_NotificationPushHelper_closure1
brooklyn.entity.basic.MethodEffector$_AnnotationsOnMethod_closure2
brooklyn.entity.basic.MethodEffector$_AnnotationsOnMethod_closure1
{code}
The exception that crashes Weld is:
{code}
Caused by: java.lang.InternalError: Malformed class name
at java.lang.Class.getSimpleName(Class.java:1133) [:1.6.0_29]
at java.lang.Class.isAnonymousClass(Class.java:1188) [:1.6.0_29]
at org.jboss.weld.introspector.jlr.WeldClassImpl.isAnonymousClass(WeldClassImpl.java:386)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.isTypeManagedBeanOrDecoratorOrInterceptor(AbstractBeanDeployer.java:260)
at org.jboss.weld.bootstrap.BeanDeployer.createBeans(BeanDeployer.java:131)
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:191)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336)
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81)
at org.jboss.as.weld.services.WeldService.start(WeldService.java:89)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
... 4 more
{code}
The attached project demonstrates the problem by having Weld load the following class:
{code}
public class ClosureClassNameTest {
private static class Inner {
def _ = [1, 2, 3].each {}
}
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (WELD-1040) Support Java Web Start
by Alexandre Gattiker (Created) (JIRA)
Support Java Web Start
----------------------
Key: WELD-1040
URL: https://issues.jboss.org/browse/WELD-1040
Project: Weld
Issue Type: Bug
Components: Java SE Support
Affects Versions: 1.1.5.Final, 1.1.4.Final
Reporter: Alexandre Gattiker
Attachments: weld-webstart-bug.zip
ClassLoader.getResources("META-INF/beans.xml") returns remote server URLs in the format "http://..."
Weld's FileSystemURLHandler tries to open these URLs as files, which leads to:
java.lang.RuntimeException: Error handling file http:/localhost:8080/weld-webstart-war-0.0.1-SNAPSHOT/webstart/weld-webstart-jar.jar
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:80)
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handle(FileSystemURLHandler.java:58)
at org.jboss.weld.environment.se.discovery.url.URLScanner.scan(URLScanner.java:102)
at org.jboss.weld.environment.se.discovery.url.WeldSEUrlDeployment.<init>(WeldSEUrlDeployment.java:39)
at org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:130)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:80)
at com.example.TestApp.main(TestApp.java:12)
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 com.sun.javaws.Launcher.executeApplication(Launcher.java:1914)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1847)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1609)
at com.sun.javaws.Launcher.run(Launcher.java:138)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:143)
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:71)
... 15 more
I am attaching a demo project that also contains a proposed fix, using com.sun.jnlp.JNLPClassLoader#getJarFile(URL) to retrieve the location of the locally cached copy of the JAR. As this is an internal class it is accessed by reflection. The getJarFile method only exists in JRE 6, not in JRE 5.
Add to org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler:
if (urlPath.startsWith("http:") || urlPath.startsWith("https:")) {
ClassLoader cl;
if (Thread.currentThread().getContextClassLoader() != null) {
cl = Thread.currentThread().getContextClassLoader();
} else {
cl = getClass().getClassLoader();
}
// see http://javasourcecode.org/html/open-source/jdk/jdk-6u23/com/sun/jnlp/JNLP...
// public JarFile getJarFile(URL url) throws IOException {
Method m = cl.getClass().getMethod("getJarFile", URL.class);
// returns a reference to the local cached copy of the JAR
JarFile jarFile = (JarFile) m.invoke(cl, new URL(urlPath));
urlPath = jarFile.getName();
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (WELD-1059) System property based scanning tests fail in container
by Stuart Douglas (JIRA)
Stuart Douglas created WELD-1059:
------------------------------------
Summary: System property based scanning tests fail in container
Key: WELD-1059
URL: https://issues.jboss.org/browse/WELD-1059
Project: Weld
Issue Type: Bug
Reporter: Stuart Douglas
The following tests fail as the system property is set in the client JVM, and not the server JVM where the test takes place. I am not actually sure how these ever worked.
Failed tests: test(org.jboss.weld.tests.metadata.scanning.SystemPropertyActivationTest)
test(org.jboss.weld.tests.metadata.scanning.SystemPropertyValueActivationTest)
test(org.jboss.weld.tests.metadata.scanning.SystemPropertyInvertedActivationTest)
test(org.jboss.weld.tests.metadata.scanning.ClassAvailableAndSystemPropertyActivationTest)
test(org.jboss.weld.tests.metadata.scanning.SystemPropertyValueInvertedActivationTest)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (WELD-887) Confusing exception message when Interceptor binding not provided
by Hendy Irawan (JIRA)
Confusing exception message when Interceptor binding not provided
-----------------------------------------------------------------
Key: WELD-887
URL: https://issues.jboss.org/browse/WELD-887
Project: Weld
Issue Type: Bug
Components: Interceptors and Decorators
Affects Versions: 1.0.1.Final
Reporter: Hendy Irawan
Seems like MISSING_BINDING_ON_INTERCEPTOR is not a valid message key in resource bundle?
org.jboss.weld.exceptions.DeploymentException: Exception message for key MISSING_BINDING_ON_INTERCEPTOR not found due to String index out of range: -1
at org.jboss.weld.bean.InterceptorImpl.<init>(InterceptorImpl.java:71)
at org.jboss.weld.bean.InterceptorImpl.of(InterceptorImpl.java:55)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.createInterceptor(AbstractBeanDeployer.java:255)
at org.jboss.weld.bootstrap.BeanDeployer.createBeans(BeanDeployer.java:106)
at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:151)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)
at org.jboss.arquillian.container.weld.se.embedded_1.WeldSEContainer.deploy(WeldSEContainer.java:118)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:141)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:115)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:226)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:114)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:100)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:78)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:51)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.core.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:86)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:79)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:217)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:78)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.core.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.impl.client.ContainerEventController.execute(ContainerEventController.java:69)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:70)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:170)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)
at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:187)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (WELD-1051) jboss-tck-runner not detecting the deployment exception properly
by Jozef Hartinger (JIRA)
Jozef Hartinger created WELD-1051:
-------------------------------------
Summary: jboss-tck-runner not detecting the deployment exception properly
Key: WELD-1051
URL: https://issues.jboss.org/browse/WELD-1051
Project: Weld
Issue Type: Bug
Reporter: Jozef Hartinger
Assignee: Martin Kouba
Fix For: 2.0.0.Alpha2
For org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest,
the JBossAS7DeploymentExceptionTransformer is not able to transform the exception properly. The exception message sent by the server contains the following message, which is not sufficient to reconstruct the original weld exception:
{quote}
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"0a089332-e386-4722-a478-4c0ad24013c0.war\".component.\"org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.TestServlet_Broken\".WeldInstantiator" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"0a089332-e386-4722-a478-4c0ad24013c0.war\".component.\"org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.TestServlet_Broken\".WeldInstantiator: Failed to start service"}}
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (WELD-950) Session Scoped bean got stucked in CreationalContextImpl.incompleteInstances map
by Wang Liyu (JIRA)
Session Scoped bean got stucked in CreationalContextImpl.incompleteInstances map
--------------------------------------------------------------------------------
Key: WELD-950
URL: https://issues.jboss.org/browse/WELD-950
Project: Weld
Issue Type: Bug
Components: Bootstrap and Metamodel API, Class Beans (Managed and Session)
Affects Versions: 1.1.2.Final
Environment: JSF2 + Weld1.1.2.Final on Tomcat (JBoss 6 has same issue)
Reporter: Wang Liyu
I have a session scoped bean annotated with @Named @SessionScoped, and in the bean's method, I called context.getExternalContext().invalidateSession(); to end the conversation and after @PreDestroy called, the bean is still in the memory, it was hard reference from CreationalContextImpl.incompleteInstances map.
The issue can be reproduced with modified weld-numberguess example (I attached with this ticket)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month