User: mulder  
  Date: 00/07/03 17:04:27

  Modified:    src/main/org/jboss/ejb/plugins/jaws/deployment
                        JawsCMPField.java
  Log:
  Catch NullPointerExceptions and just print out a one-liner.  I think the
  exception is OK (reading an uninitialized field, only seems to happen
  when first loaded) but I haven't verified that, so I didn't fix it.
  
  Revision  Changes    Path
  1.5       +76 -66    
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsCMPField.java
  
  Index: JawsCMPField.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsCMPField.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JawsCMPField.java 2000/05/30 18:32:23     1.4
  +++ JawsCMPField.java 2000/07/04 00:04:27     1.5
  @@ -18,125 +18,125 @@
   import com.dreambean.ejx.xml.*;
   
   /**
  - *   <description> 
  - *      
  + *   <description>
  + *
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
    *   @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
  - *   @version $Revision: 1.4 $
  + *   @version $Revision: 1.5 $
    */
   public class JawsCMPField
      extends com.dreambean.ejx.ejb.CMPField
      implements PropertyChangeListener
   {
      // Constants -----------------------------------------------------
  -    
  +
      // Attributes ----------------------------------------------------
      String columnName = "";
      String sqlType = "";
      String jdbcType = "";
   
      Customizer c;
  -   
  +
      // Static --------------------------------------------------------
   
      // Constructors --------------------------------------------------
      public JawsCMPField()
      {
  -        
  +
        addPropertyChangeListener(this);
      }
  -    
  +
      // Public --------------------------------------------------------
      public void setColumnName(String n) { columnName = n; }
      public String getColumnName() { return columnName; }
  -   
  -     public void setSqlType(String s) { 
  -   
  -     String old = sqlType; 
  -        
  -             sqlType = s; 
  -        
  +
  +     public void setSqlType(String s) {
  +
  +     String old = sqlType;
  +
  +             sqlType = s;
  +
                pcSupport.firePropertyChange("SqlType", old, sqlType);
        }
  -  
  -    public String getSqlType() { 
  -           
  -         if (!sqlType.equals("")) { 
  -       
  +
  +    public String getSqlType() {
  +
  +         if (!sqlType.equals("")) {
  +
                return sqlType;
            }
  -             
  +
                else try {
  -             
  +
                        // If the sqlType was not specified directly get the sqlType 
from the default
                        // Path is 
Field->Entity->Beans->Jar(down)->TypeMappings->TMapping->Mapping
  -             
  +
                    // Get the type from the Entity stored above
                        ClassLoader cl = 
((JawsFileManager)getBeanContext().getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
  -            
  +
                        Class clazz = 
cl.loadClass(((JawsEntity)getBeanContext()).getEjbClass());
  -            
  +
                        java.lang.reflect.Field type = clazz.getField(getFieldName());
  -                     
  +
                        // Retrieve the sql type from Mapping defaults
                        sqlType = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getSqlTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  -        
  +
                        return sqlType;
                }
  -             
  +
                catch (Exception e) {
  -                     
  +
                        // not much we can do at this point
                        e.printStackTrace(System.err);
  -                     
  +
                        return null;
                }
        }
  -  
  -    public void setJdbcType(String s) { 
  -        
  -       String old = jdbcType; 
  -        
  -        jdbcType = s; 
  -        
  +
  +    public void setJdbcType(String s) {
  +
  +       String old = jdbcType;
  +
  +        jdbcType = s;
  +
           pcSupport.firePropertyChange("JdbcType", old, jdbcType);
        }
  -  
  -     public String getJdbcType() { 
  -       
  +
  +     public String getJdbcType() {
  +
                if (!jdbcType.equals("")) {
  -        
  +
                return jdbcType;
                }
  -       
  +
                else try {
  -                 
  +
                        // If the sqlType was not specified directly get the sqlType 
from the default
                        // Path is 
Field->Entity->Beans->Jar(down)->TypeMappings->TMapping->Mapping
  -             
  +
                        // Get the type
                        ClassLoader cl = 
((JawsFileManager)getBeanContext().getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
  -            
  +
                        Class clazz = 
cl.loadClass(((JawsEntity)getBeanContext()).getEjbClass());
  -            
  +
                        java.lang.reflect.Field type = clazz.getField(getFieldName());
  -             
  +
                    // Go get the default from jawsDefault
                        // If there is no database in JawsEnterpriseBeans we use 
default Mappings
                        jdbcType = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getJdbcTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  -           
  +
                        return jdbcType;
                }
                catch (Exception e) {
  -                     
  +
                        // not much we can do at this point
                        e.printStackTrace(System.err);
  -                     
  +
                        return null;
                }
        }
  -   
  +
      // PropertyChange ------------------------------------------------
      public void addPropertyChangeListener(PropertyChangeListener listener)
      {
  @@ -147,20 +147,20 @@
      {
         pcSupport.removePropertyChangeListener(listener);
      }
  -   
  +
      // XmlExternalizable implementation ------------------------------
      public Element exportXml(Document doc)
      {
         Element cmpfield = doc.createElement("cmp-field");
         XMLManager.addElement(cmpfield,"field-name",getFieldName());
  -      
  +
         XMLManager.addElement(cmpfield,"column-name",getColumnName());
         XMLManager.addElement(cmpfield,"sql-type",getSqlType());
         XMLManager.addElement(cmpfield,"jdbc-type",getJdbcType());
  -      
  +
         return cmpfield;
      }
  -   
  +
      public void importXml(Element elt)
      {
         if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
  @@ -170,7 +170,7 @@
            {
               Node n = nl.item(i);
               String name = n.getNodeName();
  -            
  +
               if (name.equals("column-name"))
               {
                  setColumnName(n.hasChildNodes() ? XMLManager.getString(n) : "");
  @@ -180,7 +180,7 @@
               } else if (name.equals("jdbc-type"))
               {
                  setJdbcType(n.hasChildNodes() ? XMLManager.getString(n) : "");
  -            } 
  +            }
   
            }
         } else // EJB-JAR XML
  @@ -189,33 +189,43 @@
            setColumnName(getFieldName());
         }
      }
  -   
  +
      public String toString()
      {
         return (getFieldName().equals("")) ? "CMP field mapping" : getFieldName();
      }
  -    
  +
      public void propertyChange(PropertyChangeEvent evt)
      {
         if (evt.getPropertyName().equals("TypeMapping"))
         {
  -             
  +
            // Try to find out SQL
            try
            {
               ClassLoader cl = 
((JawsFileManager)getBeanContext().getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
               Class clazz = 
cl.loadClass(((JawsEntity)getBeanContext()).getEjbClass());
               java.lang.reflect.Field type = clazz.getField(getFieldName());
  -            
  -                             String sql = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getSqlTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  +
  +                     String sql = null;
  +            try {
  +                sql = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getSqlTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  +            } catch(NullPointerException e) {
  +                System.out.println("Caught SQL NPE on JawsCMPField!");
  +            }
               if (sql != null)
                  setSqlType(sql);
  -              
  -            String jdbc = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getJdbcTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  -           
  +
  +            String jdbc = null;
  +            try {
  +                jdbc = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMapping()).getJdbcTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
  +            } catch(NullPointerException e) {
  +                System.out.println("Caught JDBC NPE on JawsCMPField!");
  +            }
  +
                        if (jdbc != null)
                  setJdbcType(jdbc);
  -            
  +
            } catch (Throwable e)
            {
               // Didn't work..
  @@ -224,7 +234,7 @@
         }
      }
      // Package protected ---------------------------------------------
  -    
  +
      // Protected -----------------------------------------------------
        protected void initializeBeanContextResources()
        {
  
  
  

Reply via email to