diff --git a/src/org/apache/xalan/extensions/ObjectFactory.java b/src/org/apache/xalan/extensions/ObjectFactory.java
index c2c3a02..a929883 100755
--- a/src/org/apache/xalan/extensions/ObjectFactory.java
+++ b/src/org/apache/xalan/extensions/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/lib/ObjectFactory.java b/src/org/apache/xalan/lib/ObjectFactory.java
index 3ddb0a0..5afbe69 100755
--- a/src/org/apache/xalan/lib/ObjectFactory.java
+++ b/src/org/apache/xalan/lib/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/lib/sql/ObjectFactory.java b/src/org/apache/xalan/lib/sql/ObjectFactory.java
index 2df0b6f..849efed 100755
--- a/src/org/apache/xalan/lib/sql/ObjectFactory.java
+++ b/src/org/apache/xalan/lib/sql/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xslt/ObjectFactory.java b/src/org/apache/xalan/xslt/ObjectFactory.java
index b2147a1..3aaae44 100755
--- a/src/org/apache/xalan/xslt/ObjectFactory.java
+++ b/src/org/apache/xalan/xslt/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/cmdline/ObjectFactory.java b/src/org/apache/xalan/xsltc/cmdline/ObjectFactory.java
index f2235a5..dca6cb5 100755
--- a/src/org/apache/xalan/xsltc/cmdline/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/cmdline/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/compiler/ObjectFactory.java b/src/org/apache/xalan/xsltc/compiler/ObjectFactory.java
index b9395ac..a019326 100755
--- a/src/org/apache/xalan/xsltc/compiler/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/compiler/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/compiler/util/ObjectFactory.java b/src/org/apache/xalan/xsltc/compiler/util/ObjectFactory.java
index 654d0f8..1c59aba 100755
--- a/src/org/apache/xalan/xsltc/compiler/util/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/compiler/util/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/dom/ObjectFactory.java b/src/org/apache/xalan/xsltc/dom/ObjectFactory.java
index e59eef9..5faf046 100755
--- a/src/org/apache/xalan/xsltc/dom/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/dom/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/runtime/ObjectFactory.java b/src/org/apache/xalan/xsltc/runtime/ObjectFactory.java
index 5aab659..4c1737d 100755
--- a/src/org/apache/xalan/xsltc/runtime/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/runtime/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xalan/xsltc/trax/ObjectFactory.java b/src/org/apache/xalan/xsltc/trax/ObjectFactory.java
index ef84f6b..2c8ca2d 100755
--- a/src/org/apache/xalan/xsltc/trax/ObjectFactory.java
+++ b/src/org/apache/xalan/xsltc/trax/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xml/dtm/ObjectFactory.java b/src/org/apache/xml/dtm/ObjectFactory.java
index fe121be..3f7eec3 100755
--- a/src/org/apache/xml/dtm/ObjectFactory.java
+++ b/src/org/apache/xml/dtm/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xml/dtm/ref/ObjectFactory.java b/src/org/apache/xml/dtm/ref/ObjectFactory.java
index 9108f3a..2a330e0 100755
--- a/src/org/apache/xml/dtm/ref/ObjectFactory.java
+++ b/src/org/apache/xml/dtm/ref/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xml/serializer/ObjectFactory.java b/src/org/apache/xml/serializer/ObjectFactory.java
index cddafee..ab75248 100755
--- a/src/org/apache/xml/serializer/ObjectFactory.java
+++ b/src/org/apache/xml/serializer/ObjectFactory.java
@@ -477,7 +477,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xml/utils/ObjectFactory.java b/src/org/apache/xml/utils/ObjectFactory.java
index f110de4..6c68f9c 100644
--- a/src/org/apache/xml/utils/ObjectFactory.java
+++ b/src/org/apache/xml/utils/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
diff --git a/src/org/apache/xpath/functions/ObjectFactory.java b/src/org/apache/xpath/functions/ObjectFactory.java
index fb51b7e..bf6e811 100755
--- a/src/org/apache/xpath/functions/ObjectFactory.java
+++ b/src/org/apache/xpath/functions/ObjectFactory.java
@@ -478,7 +478,7 @@
         SecurityManager security = System.getSecurityManager();
         try{
                 if (security != null){
-                    final int lastDot = className.lastIndexOf(".");
+                    final int lastDot = className.lastIndexOf('.');
                     String packageName = className;
                     if (lastDot != -1) packageName = className.substring(0, lastDot);
                     security.checkPackageAccess(packageName);
