Do not use the currently evaluated code repository as parent/root repository for repositories added via app.addRepository(). I don't know why I did this in the first place, but it messes up code evaluation order because multiple repositories end up with the same root repository.
This commit is contained in:
parent
3e1df369bf
commit
fc8ce41184
3 changed files with 3 additions and 32 deletions
|
@ -1735,28 +1735,6 @@ public final class Application implements Runnable {
|
|||
return Collections.unmodifiableList(repositories);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the code resource currently being evaluated/compiled. This is used
|
||||
* to set the proper parent repository when a new repository is added
|
||||
* via app.addRepository().
|
||||
*
|
||||
* @param resource the resource being currently evaluated/compiled
|
||||
*/
|
||||
public void setCurrentCodeResource(Resource resource) {
|
||||
currentCodeResource = resource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the code resource currently being evaluated/compiled. This is used
|
||||
* to set the proper parent repository when a new repository is added
|
||||
* via app.addRepository().
|
||||
|
||||
* @return the resource being currently evaluated/compiled
|
||||
*/
|
||||
public Resource getCurrentCodeResource() {
|
||||
return currentCodeResource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the directory of the Helma server
|
||||
*/
|
||||
|
|
|
@ -138,9 +138,6 @@ public class ApplicationBean implements Serializable {
|
|||
* @param obj the repository, relative or absolute path to the library.
|
||||
*/
|
||||
public synchronized void addRepository(Object obj) {
|
||||
Resource current = app.getCurrentCodeResource();
|
||||
Repository parent = current == null ?
|
||||
null : current.getRepository().getRootRepository();
|
||||
Repository rep;
|
||||
if (obj instanceof String) {
|
||||
String path = (String) obj;
|
||||
|
@ -152,12 +149,12 @@ public class ApplicationBean implements Serializable {
|
|||
throw new RuntimeException("Repository path does not exist: " + file);
|
||||
}
|
||||
if (file.isDirectory()) {
|
||||
rep = new FileRepository(file, parent);
|
||||
rep = new FileRepository(file);
|
||||
} else if (file.isFile()) {
|
||||
if (file.getName().endsWith(".zip")) {
|
||||
rep = new ZipRepository(file, parent);
|
||||
rep = new ZipRepository(file);
|
||||
} else {
|
||||
rep = new SingleFileRepository(file, parent);
|
||||
rep = new SingleFileRepository(file);
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException("Unsupported file type in addRepository: " + file);
|
||||
|
|
|
@ -799,9 +799,6 @@ public final class RhinoCore implements ScopeProvider {
|
|||
String sourceName = code.getName();
|
||||
Reader reader = null;
|
||||
|
||||
Resource previousCurrentResource = app.getCurrentCodeResource();
|
||||
app.setCurrentCodeResource(code);
|
||||
|
||||
String encoding = app.getProperty("sourceCharset");
|
||||
|
||||
try {
|
||||
|
@ -837,7 +834,6 @@ public final class RhinoCore implements ScopeProvider {
|
|||
wrappercache.clear();
|
||||
}
|
||||
} finally {
|
||||
app.setCurrentCodeResource(previousCurrentResource);
|
||||
if (reader != null) {
|
||||
try {
|
||||
reader.close();
|
||||
|
|
Loading…
Add table
Reference in a new issue