Bom dia, galera! Sou novato aqui no fórum, mas já acompanho como leitor há muito tempo. Diversos posts aqui já salvaram minha pele, e tal =)
Bem, direto ao ponto. Estou com um conversor aqui que pega um endereço IP (String) e o transforma em um Long. Basicamente, ele pega o IP e o trata como se fosse um número em base 256, em que cada octeto é um algarismo, e o converte para um equivalente em base 10. O algoritmo em si está correto, já o testei diversas vezes. Inclusive o Converter é chamado e todos os passos são executados, menos o de atualizar os valores. Como resultado, o IP no bean fica null. Seguem o log, com a saída de cada passo do algoritmo, e os códigos, tanto do Converter, quanto do Managed Bean:
LOG[#|2010-10-20T12:40:11.926-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|stringToArray.ip: 200.131.34.66|#]
[#|2010-10-20T12:40:11.927-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|stringToArray.ipOctetos: 4|#]
[#|2010-10-20T12:40:11.927-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|stringToArray.ipArray: 4|#]
[#|2010-10-20T12:40:11.927-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong: 4|#]
[#|2010-10-20T12:40:11.927-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[0]: 200|#]
[#|2010-10-20T12:40:11.927-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[0]*Math.pow(256,3): 8.589934592E11|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.intIP: [telefone removido]|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[1]: 131|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[1]*Math.pow(256,2): 2.197815296E9|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.intIP: [telefone removido]|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[2]: 34|#]
[#|2010-10-20T12:40:11.928-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[2]*Math.pow(256,1): 2228224.0|#]
[#|2010-10-20T12:40:11.929-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.intIP: [telefone removido]|#]
[#|2010-10-20T12:40:11.929-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[3]: 66|#]
[#|2010-10-20T12:40:11.929-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.ip[3]*Math.pow(256,0): 16896.0|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|arrayToLong.intIP: [telefone removido]|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|stringToLong.ipLong: [telefone removido]|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|longToArray.ipArray.length: 4|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|longToArray.ipArray[3]: 200|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|longToArray.ipArray[2]: 131|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|longToArray.ipArray[1]: 34|#]
[#|2010-10-20T12:40:11.930-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|longToArray.ipArray[0]: 66|#]
[#|2010-10-20T12:40:11.931-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.IPUtils|_ThreadID=31;_ThreadName=Thread-1;|IP convertido para long e convertido de volta: 200.131.34.66|#]
[#|2010-10-20T12:40:11.933-0200|INFO|glassfish3.0.1|br.cefetmg.ccc.gerir.web.RedesBean|_ThreadID=31;_ThreadName=Thread-1;|ipBase: null|#]
[#|2010-10-20T12:40:11.933-0200|SEVERE|glassfish3.0.1|javax.enterprise.resource.webcontainer.jsf.application|_ThreadID=31;_ThreadName=Thread-1;|java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
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:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at br.cefetmg.ccc.gerir.web.RedesBean.cadastraNova(RedesBean.java:158)
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.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
... 32 more
|#]
[#|2010-10-20T12:40:12.032-0200|WARNING|glassfish3.0.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=31;_ThreadName=Thread-1;|#{redes.cadastraNova}: java.lang.NullPointerException
javax.faces.FacesException: #{redes.cadastraNova}: java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:114)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
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:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
... 31 more
Caused by: java.lang.NullPointerException
at br.cefetmg.ccc.gerir.web.RedesBean.cadastraNova(RedesBean.java:158)
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.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
... 32 more
|#]
[#|2010-10-20T12:40:12.159-0200|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=http-thread-pool-8080-(2);|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
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:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at br.cefetmg.ccc.gerir.web.RedesBean.cadastraNova(RedesBean.java:158)
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.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
... 32 more
|#]
[#|2010-10-20T12:40:12.159-0200|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=Thread-1;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
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:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at br.cefetmg.ccc.gerir.web.RedesBean.cadastraNova(RedesBean.java:158)
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.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
... 32 more
|#]
[#|2010-10-20T12:40:12.159-0200|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=31;_ThreadName=http-thread-pool-8080-(2);|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
at javax.faces.component.UICommand.broadcast(UICommand.java:311)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
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:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at br.cefetmg.ccc.gerir.web.RedesBean.cadastraNova(RedesBean.java:158)
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.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
... 32 more
|#]
package br.cefetmg.ccc.gerir.helper;
import java.util.logging.Logger;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.*;
public class IPUtils implements Converter{
private static final Logger logger = Logger.getLogger("br.cefetmg.ccc.gerir.web.IPUtils");
public static short[] stringToArray(String ip){
if(ip.matches("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}"+
"(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b")){
String[] ipOctetos = ip.split("\\.");
short[] ipArray = new short[ipOctetos.length];
logger.info("stringToArray.ip: " + ip);
logger.info("stringToArray.ipOctetos: " + ipOctetos.length);
logger.info("stringToArray.ipArray: " + ipArray.length);
for(int i=0; i<ipArray.length; i++){
ipArray[i] = (short) Integer.parseInt(ipOctetos[i]);
}
return ipArray;
}
else throw new ConverterException();
}
public static String arrayToString(short[] ip){
String ipString = "";
for(int i=1; i<=ip.length; i++){
ipString += Integer.toString(ip[ip.length-i]);
if(i<(ip.length)) ipString += ".";
}
return ipString;
}
/**
* Em última análise, o IP nada mais é do que um número em base 256.
* Portanto, faz todo o sentido convertê-lo para um inteiro em base 10!
* inb4 gambiarra
* @param ip IP no formato a.b.c.d ("base 256")
* @return IP em "base 10"
*/
public static Long arrayToLong(short[] ip){
long intIP = 0;
logger.info("arrayToLong: " + ip.length);
for(int casas = ip.length; casas>0; casas--){
logger.info("arrayToLong.ip[" + (ip.length-casas) + "]: " + (ip[ip.length-casas]));
intIP += ip[ip.length-casas]*Math.pow(256, (casas-1));
logger.info("arrayToLong.ip[" + (ip.length-casas) + "]*Math.pow(256," + (casas-1) +"): " + ip[ip.length-casas]*Math.pow(256, casas));
logger.info("arrayToLong.intIP: " + intIP);
}
return intIP;
}
public static short[] longToArray(long ip){
short[] ipArray = new short[4];
logger.info("longToArray.ipArray.length: " + ipArray.length);
for(int i=(ipArray.length-1); i>=0; i--){
ipArray[i] = (short) ((ip/Math.pow(256,i))%256);
logger.info("longToArray.ipArray["+i+"]: " + ipArray[i]);
}
return ipArray;
}
public static long stringToLong(String ip){
Long ipLong = arrayToLong(stringToArray(ip));
logger.info("stringToLong.ipLong: " + ipLong);
return ipLong;
}
public static String longToString(long ip){
return arrayToString(longToArray(ip));
}
@Override
public Object getAsObject(
FacesContext context,
UIComponent component,
String ip
)
{
Long intIP;
if(ip.matches("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}"+
"(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b")){
intIP = stringToLong(ip);
logger.info("IP convertido para long e convertido de volta: " + longToString(intIP));
return intIP;
}
else throw new ConverterException("Formato inválido");
}
@Override
public String getAsString(
FacesContext context,
UIComponent component,
Object ip
)
{
logger.info("getAsString.ip:" + longToString((Long) ip));
return longToString((Long) ip);
}
}
package br.cefetmg.ccc.gerir.web;
import java.util.*;
import java.util.logging.*;
import br.cefetmg.ccc.gerir.database.*;
import br.cefetmg.ccc.gerir.helper.*;
import javax.ejb.*;
import javax.faces.*;
import javax.faces.bean.*;
/**
* Bean que cuida das redes e subredes.
* @author Alkmim
*
*/
@ManagedBean(name="redes")
@SessionScoped
public class RedesBean {
@EJB
RedeDAO redeDAO;
private static final Logger logger = Logger.getLogger("br.cefetmg.ccc.gerir.web.RedesBean");
// atributos da rede
private Long id;
private String nome;
private Long ipBase;
private short cidr;
private Long netmask;
private ArrayList<Long> routers;
private ArrayList<Long> dns;
private ArrayList<Long> netbios;
private Long broadcast;
private Long leaseDefault;
private Long leaseMax;
private Long rangeMin;
private Long rangeMax;
private List<Registro> Registros;
// getters e setters dos atributos da rede
public Long getId(){
return id;
}
public void setId(Long id){
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Long getIpBase() {
return ipBase;
}
public void setIpBase(Long ipBase) {
this.ipBase = ipBase;
logger.info("ipBase: " + ipBase);
logger.info("IPUtils.longToString(ipBase):" + IPUtils.longToString(ipBase));
}
public short getCidr() {
return cidr;
}
public void setCidr(short cidr) {
this.cidr = cidr;
}
public Long getNetmask() {
return netmask;
}
public void setNetmask(Long netmask) {
this.netmask = netmask;
}
public ArrayList<Long> getRouters(){
return routers;
}
public void setRouters(ArrayList<Long> routers) {
this.routers = routers;
}
public ArrayList<Long> getDns() {
return dns;
}
public void setDns(ArrayList<Long> dns) {
this.dns = dns;
}
public ArrayList<Long> getNetbios() {
return netbios;
}
public void setNetbios(ArrayList<Long> netbios) {
this.netbios = netbios;
}
public String getBroadcast() {
return IPUtils.longToString(broadcast);
}
public void setBroadcast(String broadcast) {
this.broadcast = IPUtils.stringToLong(broadcast);
}
public Long getLeaseDefault() {
return leaseDefault;
}
public void setLeaseDefault(Long leaseDefault) {
this.leaseDefault = leaseDefault;
}
public Long getLeaseMax() {
return leaseMax;
}
public void setLeaseMax(Long leaseMax) {
this.leaseMax = leaseMax;
}
public Long getRangeMin() {
return rangeMin;
}
public void setRangeMin(Long rangeMin) {
this.rangeMin = rangeMin;
}
public Long getRangeMax() {
return rangeMax;
}
public void setRangeMax(Long rangeMax) {
this.rangeMax = rangeMax;
}
public List<Registro> getRegistros(){
return Registros;
}
public void setRegistros(List<Registro> Registros){
this.Registros = Registros;
}
// fim dos getters e setters
/**
* Calcula o netmask a partir do cidr dado
* @return netmask short[]
*/
public Long calculaNetmask(){
short[] netmask = {0, 0, 0, 0};
for(int i=0; i<32; i++){
if(i<cidr){
netmask[i/8] += Math.pow(2, 7-(i%8));
}else netmask[i/8] += 0;
}
return IPUtils.arrayToLong(netmask);
}
// o método chamado pela página
public String cadastraNova(){
logger.info("ipBase: " + ipBase);
logger.info("IPUtils.longToString(ipBase):" + IPUtils.longToString(ipBase)); //
return "/redes/nova";
}
}