Update of /cvsroot/jython/jython/org/python/core
In directory usw-pr-cvs1:/tmp/cvs-serv19395
Modified Files:
CachedJarsPackageManager.java PyJavaPackage.java
Log Message:
Solve feature request [ #428582 ] Access to non-public classes.
The cachedir files must be deleted for this change to take effect.
Index: CachedJarsPackageManager.java
===================================================================
RCS file: /cvsroot/jython/jython/org/python/core/CachedJarsPackageManager.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** CachedJarsPackageManager.java 2001/03/14 14:30:48 1.8
--- CachedJarsPackageManager.java 2001/07/23 16:10:42 1.9
***************
*** 110,124 ****
if (filterByName(className,false)) return;
! // An extra careful test, maybe should be ignored????
! int access = checkAccess(zip);
!
! if ((access == -1) || filterByAccess(name,access)) return;
!
! Vector vec = (Vector)zipPackages.get(packageName);
if (vec == null) {
! vec = new Vector();
zipPackages.put(packageName, vec);
}
- vec.addElement(className);
}
--- 110,124 ----
if (filterByName(className,false)) return;
! Vector[] vec = (Vector[])zipPackages.get(packageName);
if (vec == null) {
! vec = new Vector[] { new Vector(), new Vector() };
zipPackages.put(packageName, vec);
+ }
+ int access = checkAccess(zip);
+ if ((access != -1) && !filterByAccess(name,access)) {
+ vec[0].addElement(className);
+ } else {
+ vec[1].addElement(className);
}
}
***************
*** 138,143 ****
for (Enumeration e = zipPackages.keys() ; e.hasMoreElements() ;) {
Object key = e.nextElement();
! Vector vec = (Vector)zipPackages.get(key);
! zipPackages.put(key, vectorToString(vec));
}
--- 138,147 ----
for (Enumeration e = zipPackages.keys() ; e.hasMoreElements() ;) {
Object key = e.nextElement();
! Vector[] vec = (Vector[])zipPackages.get(key);
! String classes = vectorToString(vec[0]);
! if (vec[1].size() > 0) {
! classes += '@' + vectorToString(vec[1]);
! }
! zipPackages.put(key, classes);
}
***************
*** 298,301 ****
--- 302,310 ----
String pkg = (String)e.nextElement();
String classes = (String)zipPackages.get(pkg);
+
+ int idx = classes.indexOf('@');
+ if (idx >= 0 && Options.respectJavaAccessibility) {
+ classes = classes.substring(0, idx);
+ }
makeJavaPackage(pkg, classes, jarfile);
Index: PyJavaPackage.java
===================================================================
RCS file: /cvsroot/jython/jython/org/python/core/PyJavaPackage.java,v
retrieving revision 2.14
retrieving revision 2.15
diff -C2 -r2.14 -r2.15
*** PyJavaPackage.java 2001/07/18 15:53:56 2.14
--- PyJavaPackage.java 2001/07/23 16:10:42 2.15
***************
*** 104,108 ****
*/
public void addPlaceholders(String classes) {
! StringTokenizer tok = new StringTokenizer(classes, ",");
while (tok.hasMoreTokens()) {
String p = tok.nextToken();
--- 104,108 ----
*/
public void addPlaceholders(String classes) {
! StringTokenizer tok = new StringTokenizer(classes, ",@");
while (tok.hasMoreTokens()) {
String p = tok.nextToken();
|