Bug 446257: Findbugs issues in ddlparser component
Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/oracleddlparser/pom.xml b/oracleddlparser/pom.xml
index b2e8691..d8bb80e 100644
--- a/oracleddlparser/pom.xml
+++ b/oracleddlparser/pom.xml
@@ -145,6 +145,14 @@
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <threshold>Low</threshold>
+ </configuration>
+ </plugin>
</plugins>
</reporting>
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ArgumentType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ArgumentType.java
index 0f554cb..b748152 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ArgumentType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/ArgumentType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -58,6 +58,7 @@
return enclosedType.isResolved();
}
+ @Override
public boolean isComposite() {
if (enclosedType == null) {
// by default, an argument is 'simple' until otherwise configured 'composite'
@@ -100,7 +101,7 @@
}
sb.append(" ");
if (direction != RETURN) {
- sb.append(direction.toString());
+ sb.append(direction != null ? direction.toString() : "<NULL>");
sb.append(" ");
}
if (enclosedType == null) {
@@ -114,6 +115,7 @@
//for all DatabaseTypeCompositeTestable 'is-a' tests, delegate to enclosed dataType
+ @Override
public boolean isObjectTableType() {
if (enclosedType == null) {
return false;
@@ -121,6 +123,7 @@
return enclosedType.isObjectTableType();
}
+ @Override
public boolean isObjectType() {
if (enclosedType == null) {
return false;
@@ -128,6 +131,7 @@
return enclosedType.isObjectType();
}
+ @Override
public boolean isPLSQLCollectionType() {
if (enclosedType == null) {
return false;
@@ -135,6 +139,7 @@
return enclosedType.isPLSQLCollectionType();
}
+ @Override
public boolean isPLSQLCursorType() {
if (enclosedType == null) {
return false;
@@ -142,6 +147,7 @@
return enclosedType.isPLSQLCursorType();
}
+ @Override
public boolean isPLSQLRecordType() {
if (enclosedType == null) {
return false;
@@ -149,6 +155,7 @@
return enclosedType.isPLSQLRecordType();
}
+ @Override
public boolean isPLSQLSubType() {
if (enclosedType == null) {
return false;
@@ -156,6 +163,7 @@
return enclosedType.isPLSQLSubType();
}
+ @Override
public boolean isTableType() {
if (enclosedType == null) {
return false;
@@ -163,6 +171,7 @@
return enclosedType.isTableType();
}
+ @Override
public boolean isDbTableType() {
if (enclosedType == null) {
return false;
@@ -170,6 +179,7 @@
return enclosedType.isDbTableType();
}
+ @Override
public boolean isVArrayType() {
if (enclosedType == null) {
return false;
@@ -180,25 +190,7 @@
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
- if (argumentName != null) {
- sb.append(argumentName);
- }
- else {
- if (direction == RETURN) {
- sb.append(RETURN);
- }
- }
- sb.append(" ");
- if (direction != RETURN) {
- sb.append(direction.toString());
- sb.append(" ");
- }
- if (enclosedType == null) {
- sb.append("<null/>");
- }
- else {
- sb.append(enclosedType.toString());
- }
+ sb.append(shortName());
if (optional) {
sb.append(" (opt)");
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/FunctionType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/FunctionType.java
index 365e14a..6a12ebe 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/FunctionType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/FunctionType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -22,6 +22,7 @@
super(procedureName);
}
+ @Override
public void setProcedureName(String procedureName) {
this.procedureName = procedureName;
super.typeName = "FUNCTION " + procedureName;
@@ -70,7 +71,7 @@
}
}
sb.append(") ");
- sb.append(returnArgument.toString());
+ sb.append(returnArgument != null ? returnArgument.toString() : "<NULL>");
return sb.toString();
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
index adab1e9..514ef62 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -53,6 +53,8 @@
/**
* Return the schema name for this package.
+ *
+ * @return the schema name for this package
*/
public String getSchema() {
return schema;
@@ -60,6 +62,8 @@
/**
* Set the schema name for this package.
+ *
+ * @param schema the schema name for this package
*/
public void setSchema(String schema) {
this.schema = schema;
@@ -102,29 +106,23 @@
}
public void addCursor(PLSQLCursorType cursorType) {
- if (getCursors() == null) {
- cursors = new ArrayList<PLSQLCursorType>();
- }
- if (!cursors.contains(cursorType)) {
- cursors.add(cursorType);
+ List<PLSQLCursorType> curs = getCursors();
+ if (!curs.contains(cursorType)) {
+ curs.add(cursorType);
}
}
- public void addProcedure(ProcedureType procedureType) {
- if (getProcedures() == null) {
- procedures = new ArrayList<ProcedureType>();
- }
- if (!procedures.contains(procedureType)) {
- procedures.add(procedureType);
+ public void addProcedure(ProcedureType procedureType) {
+ List<ProcedureType> proc = getProcedures();
+ if (!proc.contains(procedureType)) {
+ proc.add(procedureType);
}
}
public void addLocalVariable(FieldType var) {
- if (getLocalVariables() == null) {
- localVariables = new ArrayList<FieldType>();
- }
- if (!localVariables.contains(var)) {
- localVariables.add(var);
+ List<FieldType> vars = getLocalVariables();
+ if (!vars.contains(var)) {
+ vars.add(var);
}
}
@@ -135,6 +133,7 @@
//no-op
}
+ @Override
public boolean isComposite() {
return true;
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLRecordType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLRecordType.java
index 9522b7d..91c32eb 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLRecordType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLRecordType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -31,10 +31,13 @@
/**
* Returns the list of FieldType instances.
+ *
+ * @return the list of FieldType instances
*/
public List<FieldType> getFields() {
return fields;
}
+
public void addField(DatabaseType databaseType) {
if (databaseType.isFieldType()) {
fields.add((FieldType)databaseType);
@@ -58,6 +61,7 @@
//no-op
}
+ @Override
public void accept(DatabaseTypeVisitor visitor) {
visitor.visit(this);
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
index d15fe95..c32610f 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -324,7 +324,6 @@
}
//use reflection to avoid huge if-then-else tree: if (databaseType instanceof xxx)
- static CompositeDatabaseTypeHandler handler = new CompositeDatabaseTypeHandler();
static class CompositeDatabaseTypeHandler {
static Method[] methods = CompositeDatabaseTypeHandler.class.getMethods();
public static void handle(DatabaseTypeVisitor visitor, Object o) {
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/SimpleNode.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/SimpleNode.java
index e54f534..2d6cecd 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/SimpleNode.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/SimpleNode.java
@@ -3,7 +3,7 @@
package org.eclipse.persistence.tools.oracleddl.parser;
public
-@SuppressWarnings("all")
+@SuppressWarnings("all")
class SimpleNode implements Node {
protected Node parent;
@@ -38,7 +38,7 @@
}
public Node jjtGetChild(int i) {
- return children[i];
+ return i < jjtGetNumChildren() ? children[i] : null;
}
public int jjtGetNumChildren() {
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DBMSMetadataSessionTransformsFactory.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DBMSMetadataSessionTransformsFactory.java
index 8765bd6..91ca663 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DBMSMetadataSessionTransformsFactory.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DBMSMetadataSessionTransformsFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
+ * Copyright (c) 2011, 2014 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
@@ -22,17 +22,20 @@
public static final String TRANSFORMS = "transforms.properties";
public Properties getTransformProperties() {
- Properties transformsProperties = null;
- InputStream is = getClass().getResourceAsStream(TRANSFORMS);
+ InputStream is = DBMSMetadataSessionTransformsFactory.class.getResourceAsStream(TRANSFORMS);
if (is != null) {
- transformsProperties = new Properties();
+ Properties transformsProperties = new Properties();
try {
transformsProperties.load(is);
- is.close();
return transformsProperties;
- }
- catch (IOException e) {
+ } catch (IOException e) {
// ignore
+ } finally {
+ try {
+ is.close();
+ } catch (IOException ex) {
+ //ignore
+ }
}
}
return null;
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
index 283c24b..6fcf928 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
@@ -159,15 +159,13 @@
for (String ddl : distinctDDLs) {
DDLParser parser = newDDLParser(ddl, copyOfSchemaPatterns);
TableType tableType = parser.parseTable();
- if (tableType != null) {
- tableTypes.add(tableType);
- if (resolveTypes) {
- UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
- unresolvedTypesVisitor.visit(tableType);
- if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
- resolvedTypes(conn, tableType.getSchema(), parser,
- unresolvedTypesVisitor.getUnresolvedTypes(), tableType);
- }
+ tableTypes.add(tableType);
+ if (resolveTypes) {
+ UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
+ unresolvedTypesVisitor.visit(tableType);
+ if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
+ resolvedTypes(conn, tableType.getSchema(), parser,
+ unresolvedTypesVisitor.getUnresolvedTypes(), tableType);
}
}
}
@@ -211,20 +209,18 @@
for (String ddl : distinctDDLs) {
DDLParser parser = newDDLParser(ddl, copyOfSchemaPatterns);
PLSQLPackageType packageType = parser.parsePLSQLPackage();
- if (packageType != null) {
- packageTypes.add(packageType);
- parserMap.put(packageType, parser);
- }
+ packageTypes.add(packageType);
+ parserMap.put(packageType, parser);
}
if (!parserMap.isEmpty() && resolveTypes) {
- for (PLSQLPackageType packageType : parserMap.keySet()) {
- DDLParser parser = parserMap.get(packageType);
- UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
- unresolvedTypesVisitor.visit(packageType);
- if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
- resolvedTypes(conn, packageType.getSchema(), parser, unresolvedTypesVisitor.getUnresolvedTypes(), packageType, packageTypes);
- }
- }
+ for (Map.Entry<PLSQLPackageType, DDLParser> entry : parserMap.entrySet()) {
+ PLSQLPackageType packageType = entry.getKey();
+ UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
+ unresolvedTypesVisitor.visit(packageType);
+ if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
+ resolvedTypes(conn, packageType.getSchema(), entry.getValue(), unresolvedTypesVisitor.getUnresolvedTypes(), packageType, packageTypes);
+ }
+ }
}
}
}
@@ -265,15 +261,13 @@
for (String ddl : distinctDDLs) {
DDLParser parser = newDDLParser(ddl, copyOfSchemaPatterns);
ProcedureType procedureType = parser.parseTopLevelProcedure();
- if (procedureType != null) {
- procedureTypes.add(procedureType);
- if (resolveTypes) {
- UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
- unresolvedTypesVisitor.visit(procedureType);
- if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
- resolvedTypes(conn, procedureType.getSchema(), parser,
- unresolvedTypesVisitor.getUnresolvedTypes(), procedureType);
- }
+ procedureTypes.add(procedureType);
+ if (resolveTypes) {
+ UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
+ unresolvedTypesVisitor.visit(procedureType);
+ if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
+ resolvedTypes(conn, procedureType.getSchema(), parser,
+ unresolvedTypesVisitor.getUnresolvedTypes(), procedureType);
}
}
}
@@ -316,15 +310,13 @@
for (String ddl : distinctDDLs) {
DDLParser parser = newDDLParser(ddl, copyOfSchemaPatterns);
FunctionType functionType = parser.parseTopLevelFunction();
- if (functionType != null) {
- functionsTypes.add(functionType);
- if (resolveTypes) {
- UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
- unresolvedTypesVisitor.visit(functionType);
- if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
- resolvedTypes(conn, functionType.getSchema(), parser,
- unresolvedTypesVisitor.getUnresolvedTypes(), functionType);
- }
+ functionsTypes.add(functionType);
+ if (resolveTypes) {
+ UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
+ unresolvedTypesVisitor.visit(functionType);
+ if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
+ resolvedTypes(conn, functionType.getSchema(), parser,
+ unresolvedTypesVisitor.getUnresolvedTypes(), functionType);
}
}
}
@@ -373,7 +365,7 @@
UnresolvedTypesVisitor unresolvedTypesVisitor = new UnresolvedTypesVisitor();
unresolvedTypesVisitor.visit(databaseType);
if (!unresolvedTypesVisitor.getUnresolvedTypes().isEmpty()) {
- String schemaPattern = null;
+ String schemaPattern = PERCENT;
if (databaseType.isObjectTableType()) {
schemaPattern = ((ObjectTableType)databaseType).getSchema();
}
@@ -383,9 +375,6 @@
else if (databaseType.isVArrayType()) {
schemaPattern = ((VArrayType)databaseType).getSchema();
}
- else {
- schemaPattern = PERCENT;
- }
resolvedTypes(conn, schemaPattern, parser,
unresolvedTypesVisitor.getUnresolvedTypes(), databaseType);
}
@@ -457,11 +446,11 @@
String ddl = null;
if (clob != null) {
Reader is = clob.getCharacterStream();
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
int length = (int)clob.length();
if (length > 0) {
char[] buffer = new char[length];
- // Read stream and append to StringBuffer.
+ // Read stream and append to StringBuilder.
try {
while (is.read(buffer) != -1) {
sb.append(buffer);
@@ -591,11 +580,10 @@
boolean done = false;
DatabaseTypesRepository typesRepository = parser.getTypesRepository();
while (!done) {
- CompositeDatabaseType resolvedType = null;
UnresolvedType uType = stac.pop();
String typeName = uType.getTypeName();
CompositeDatabaseType owningType = uType.getOwningType();
- int dotIdx = typeName.indexOf(DOT);
+ int dotIdx = typeName.indexOf('.');
String typeName1 = typeName;
String typeName2 = null;
// handle dotted scenario, i.e. "PackageName.TypeName" or "SchemaName.TypeName"
@@ -604,7 +592,7 @@
typeName2 = typeName.substring(dotIdx+1, typeName.length());
// handle second dotted scenario, i.e. "SchemaName.TableName.ColumnName"
- dotIdx = typeName2.indexOf(DOT);
+ dotIdx = typeName2.indexOf('.');
if (dotIdx != -1) {
String tmpStr = typeName2;
typeName1 = tmpStr.substring(0, dotIdx);
@@ -612,7 +600,7 @@
}
}
// check type repository first
- resolvedType = (CompositeDatabaseType)typesRepository.getDatabaseType(typeName);
+ CompositeDatabaseType resolvedType = (CompositeDatabaseType)typesRepository.getDatabaseType(typeName);
if (resolvedType == null) {
if (owningType.isROWTYPEType()) {
ROWTYPEType rType = (ROWTYPEType)owningType;
@@ -685,7 +673,9 @@
List<PLSQLPackageType> packages = buildPackages(conn, schemaPattern, typeName1, false);
if (packages != null && packages.size() > 0) {
plsqlPkg = packages.get(0); // only care about first one
- processedPackages.add(plsqlPkg);
+ if (processedPackages != null) {
+ processedPackages.add(plsqlPkg);
+ }
}
}
if (plsqlPkg != null) {
@@ -884,12 +874,12 @@
worked = false;
}
finally {
- try {
- cStmt.close();
- }
- catch (SQLException e) {
+ if (cStmt != null)
+ try {
+ cStmt.close();
+ } catch (SQLException e) {
// ignore
- }
+ }
}
if (worked) {
transformsSet = true;
@@ -908,7 +898,7 @@
*/
static DatabaseType findField(String fieldName, DatabaseType targetType) {
// remove '%' from field name
- int pctIdx = fieldName.indexOf(PERCENT);
+ int pctIdx = fieldName.indexOf('%');
if (pctIdx != -1) {
fieldName = fieldName.substring(0, pctIdx);
}
diff --git a/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt b/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
index b7afcc5..417b93c 100644
--- a/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
+++ b/oracleddlparser/src/main/jjtree/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
@@ -522,7 +522,7 @@
{
packageName = dottedName;
if (dottedName.contains(".")) {
- int idx = dottedName.indexOf(".");
+ int idx = dottedName.indexOf('.');
schema = dottedName.substring(0, idx);
packageName = dottedName.substring(idx+1, dottedName.length());
}
@@ -552,7 +552,7 @@
{
procedureName = dottedName;
if (dottedName.contains(".")) {
- int idx = dottedName.indexOf(".");
+ int idx = dottedName.indexOf('.');
schema = dottedName.substring(0, idx);
procedureName = dottedName.substring(idx+1, dottedName.length());
}
@@ -582,7 +582,7 @@
{
functionName = dottedName;
if (dottedName.contains(".")) {
- int idx = dottedName.indexOf(".");
+ int idx = dottedName.indexOf('.');
schema = dottedName.substring(0, idx);
functionName = dottedName.substring(idx+1, dottedName.length());
}
@@ -614,7 +614,7 @@
{
tableName = dottedName;
if (dottedName.contains(".")) {
- int idx = dottedName.indexOf(".");
+ int idx = dottedName.indexOf('.');
schema = dottedName.substring(0, idx);
tableName = dottedName.substring(idx+1, dottedName.length());
}
@@ -653,7 +653,7 @@
{
typeName = dottedName;
if (dottedName.contains(".")) {
- int idx = dottedName.indexOf(".");
+ int idx = dottedName.indexOf('.');
schema = dottedName.substring(0, idx);
typeName = dottedName.substring(idx+1, dottedName.length());
}
@@ -761,7 +761,7 @@
{
if (s != null) {
if (s.contains(".")) {
- int dotIdx = s.indexOf(".");
+ int dotIdx = s.indexOf('.');
String namePart1 = s.substring(0, dotIdx);
String namePart2 = s.substring(dotIdx+1, s.length());
String schemaName = null;
@@ -860,10 +860,12 @@
<O_SEMICOLON>
{
FieldType variable = new FieldType(varName);
- variable.setEnclosedType(varType);
packageType.addLocalVariable(variable);
- if (varType.isROWTYPEType()) {
- ((ROWTYPEType)varType).setPackageType(packageType);
+ if (varType != null) {
+ variable.setEnclosedType(varType);
+ if (varType.isROWTYPEType()) {
+ ((ROWTYPEType)varType).setPackageType(packageType);
+ }
}
}
}
@@ -1682,7 +1684,7 @@
// may need to strip off schema/catalog name
if (dataType.getTypeName().contains(".")) {
String dataTypeName = dataType.getTypeName();
- int dotIdx = dataTypeName.indexOf(".");
+ int dotIdx = dataTypeName.indexOf('.');
String namePart1 = dataTypeName.substring(0, dotIdx);
String namePart2 = dataTypeName.substring(dotIdx+1, dataTypeName.length());
if (namePart1.equals(functionType.getCatalogName()) || namePart1.equals(functionType.getSchema())) {
@@ -1719,7 +1721,7 @@
// may need to strip off schema/catalog name
if (argumentDataType.getTypeName().contains(".")) {
String argumentDataTypeName = argumentDataType.getTypeName();
- int dotIdx = argumentDataTypeName.indexOf(".");
+ int dotIdx = argumentDataTypeName.indexOf('.');
String namePart1 = argumentDataTypeName.substring(0, dotIdx);
String namePart2 = argumentDataTypeName.substring(dotIdx+1, argumentDataTypeName.length());
if (namePart1.equals(procedureType.getCatalogName()) || namePart1.equals(procedureType.getSchema())) {