Note that there are some explanatory texts on larger screens.

plurals
  1. POjava.lang.NullPointerException selectOneMenu convertor
    primarykey
    data
    text
    <p>I have a class Specialization</p> <pre><code>public class Specialization implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @NotNull @Column(name = "id") private Integer id; @Basic(optional = false) @NotNull @Size(min = 1, max = 45) @Column(name = "name") private String name; @OneToMany(cascade = CascadeType.ALL, mappedBy = "specialization") private Collection&lt;Doctor&gt; doctorCollection; </code></pre> <p>In my webpage i have a selectOneMenu</p> <pre><code> &lt;h:selectOneMenu value="#{specializationMB.specialization}" converter="#{specializationConverter}"&gt; &lt;f:selectItems value="#{specializationMB.allSpecializations}" var="specialization" itemLabel="#{specialization.name}" itemValue="#{specialization}" /&gt; &lt;/h:selectOneMenu&gt; </code></pre> <p>GenericDao where is the find method</p> <pre><code>public abstract class GenericDao&lt;T&gt; { @PersistenceContext private EntityManager em; private Class&lt;T&gt; entityClass; public GenericDao(Class&lt;T&gt; entityClass) { this.entityClass = entityClass; } public void create(T entity) { em.persist(entity); } public void delete(T entity) { T toRemoved = em.merge(entity); em.remove(toRemoved); } public T update(T entity) { return em.merge(entity); } public T find(int entityID) { return em.find(entityClass, entityID); } @SuppressWarnings({"unchecked", "rawtypes"}) public List&lt;T&gt; findAll() { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); cq.select(cq.from(entityClass)); return em.createQuery(cq).getResultList(); } } </code></pre> <p>I create the converter for my class Specialization </p> <pre><code>public class SpecializationConverter implements Converter{ private static SpecializationDao sdao = new SpecializationDao(); @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. return sdao.find(new Integer(value)); } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. return ((Specialization) value).getId().toString(); } } </code></pre> <p>But I get an error with my selectOneMenu, when i go to the next page.</p> <pre><code>java.lang.NullPointerException at pl.ePrzychodnia.dao.GenericDao.find(GenericDao.java:40) at pl.ePrzychodnia.converter.SpecializationConverter.getAsObject(SpecializationConverter.java:24) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:171) at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:202) at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:319) at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030) at javax.faces.component.UIInput.validate(UIInput.java:960) at javax.faces.component.UIInput.executeValidate(UIInput.java:1233) at javax.faces.component.UIInput.processValidators(UIInput.java:698) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) at javax.faces.component.UIForm.processValidators(UIForm.java:253) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:722) </code></pre> <p>I don't now why. Can anyone help?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload