[
https://issues.apache.org/jira/browse/FLEX-35300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Tynjala updated FLEX-35300:
--------------------------------
Description:
Create the following class and instantiate it with {{new CustomError()}}
{code:title=CustomError.as}
package
{
public class CustomError extends Error
{
}
}
{code}
When you try to compile, the following error will appear in the compiler output:
{code}
Could not find file for class: Error
File not found: Error
org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:366)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:382)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:206)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:96)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
{code}
It appears to be related to the following code in GoogDepsWriter.java (and the
section above for {{@implements}} is probably also affected):
{code:Java}
c = line.indexOf("@extends");
if (c > -1)
{
if (fi.impls == null)
fi.impls = new ArrayList<String>();
c2 = line.indexOf("}", c);
String impl = line.substring(c + 10, c2);
fi.impls.add(impl);
}
{code}
Using NativeUtils.isJSNative() seems to help for this particular case with the
Error class:
{code:Java}
c = line.indexOf("@extends");
if (c > -1)
{
if (fi.impls == null)
fi.impls = new ArrayList<String>();
c2 = line.indexOf("}", c);
String impl = line.substring(c + 10, c2);
if(!NativeUtils.isJSNative(impl))
{
fi.impls.add(impl);
}
}
{code}
I don't think that this is the correct solution, though. Other classes defined
in externs can also give us this error and return false for isJSNative(). For
instance, I randomly tried extending child_process.ChildProcess from node.swc,
and I got the same error.
{code}
Could not find file for class: child_process.ChildProcess
File not found: child_process.ChildProcess
org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:367)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:383)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:392)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:207)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:97)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
{code}
Something more robust than NativeUtils.isJSNative() that accounts for whether
the class is extern seems required here.
This issue was not present in FlexJS 0.7.0.
was:
Create the following class and instantiate it with {{new CustomError()}}
{code:title=CustomError.as}
package
{
public class CustomError extends Error
{
}
}
{code}
When you try to compile, the following error will appear in the output:
{code}
Could not find file for class: Error
File not found: Error
org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:366)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:382)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:206)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:96)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
{code}
It appears to be related to the following code in GoogDepsWriter.java (and the
section above for {{@implements}} is probably also affected):
{code:Java}
c = line.indexOf("@extends");
if (c > -1)
{
if (fi.impls == null)
fi.impls = new ArrayList<String>();
c2 = line.indexOf("}", c);
String impl = line.substring(c + 10, c2);
fi.impls.add(impl);
}
{code}
Using NativeUtils.isJSNative() seems to help for this particular case with the
Error class:
{code:Java}
c = line.indexOf("@extends");
if (c > -1)
{
if (fi.impls == null)
fi.impls = new ArrayList<String>();
c2 = line.indexOf("}", c);
String impl = line.substring(c + 10, c2);
if(!NativeUtils.isJSNative(impl))
{
fi.impls.add(impl);
}
}
{code}
I'm don't think that this is the correct solution, though. Other classes
defined in externs can also give us this error and return false for
isJSNative(). For instance, I randomly tried extending
child_process.ChildProcess from node.swc, and I got the same error.
{code}
Could not find file for class: child_process.ChildProcess
File not found: child_process.ChildProcess
org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:367)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:383)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:392)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:207)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:97)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
{code}
Something more robust than NativeUtils.isJSNative() that accounts for whether
the class is extern seems required here.
This issue was not present in FlexJS 0.7.0.
> Could not find file for class: Error
> ------------------------------------
>
> Key: FLEX-35300
> URL: https://issues.apache.org/jira/browse/FLEX-35300
> Project: Apache Flex
> Issue Type: Bug
> Components: FalconJX
> Affects Versions: Apache FalconJX 0.8.0
> Reporter: Josh Tynjala
>
> Create the following class and instantiate it with {{new CustomError()}}
> {code:title=CustomError.as}
> package
> {
> public class CustomError extends Error
> {
> }
> }
> {code}
> When you try to compile, the following error will appear in the compiler
> output:
> {code}
> Could not find file for class: Error
> File not found: Error
> org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:366)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:382)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:391)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:206)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:96)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
> {code}
> It appears to be related to the following code in GoogDepsWriter.java (and
> the section above for {{@implements}} is probably also affected):
> {code:Java}
> c = line.indexOf("@extends");
> if (c > -1)
> {
> if (fi.impls == null)
> fi.impls = new ArrayList<String>();
> c2 = line.indexOf("}", c);
> String impl = line.substring(c + 10, c2);
> fi.impls.add(impl);
> }
> {code}
> Using NativeUtils.isJSNative() seems to help for this particular case with
> the Error class:
> {code:Java}
> c = line.indexOf("@extends");
> if (c > -1)
> {
> if (fi.impls == null)
> fi.impls = new ArrayList<String>();
> c2 = line.indexOf("}", c);
> String impl = line.substring(c + 10, c2);
> if(!NativeUtils.isJSNative(impl))
> {
> fi.impls.add(impl);
> }
> }
> {code}
> I don't think that this is the correct solution, though. Other classes
> defined in externs can also give us this error and return false for
> isJSNative(). For instance, I randomly tried extending
> child_process.ChildProcess from node.swc, and I got the same error.
> {code}
> Could not find file for class: child_process.ChildProcess
> File not found: child_process.ChildProcess
> org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:367)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:383)org.apache.flex.compiler.internal.graph.GoogDepsWriter.addDeps(GoogDepsWriter.java:392)org.apache.flex.compiler.internal.graph.GoogDepsWriter.buildDB(GoogDepsWriter.java:207)org.apache.flex.compiler.internal.graph.GoogDepsWriter.getListOfFiles(GoogDepsWriter.java:97)org.apache.flex.compiler.internal.codegen.mxml.flexjs.MXMLFlexJSPublisher.publish(MXMLFlexJSPublisher.java:319)org.apache.flex.compiler.clients.MXMLJSCNode.compile(MXMLJSCNode.java:380)org.apache.flex.compiler.clients.MXMLJSCNode._mainNoExit(MXMLJSCNode.java:238)org.apache.flex.compiler.clients.MXMLJSCNode.mainNoExit(MXMLJSCNode.java:195)org.apache.flex.compiler.clients.MXMLJSC._mainNoExit(MXMLJSC.java:365)org.apache.flex.compiler.clients.MXMLJSC.mainNoExit(MXMLJSC.java:282)org.apache.flex.compiler.clients.MXMLJSC.staticMainNoExit(MXMLJSC.java:242)org.apache.flex.compiler.clients.MXMLJSC.main(MXMLJSC.java:224)
> {code}
> Something more robust than NativeUtils.isJSNative() that accounts for whether
> the class is extern seems required here.
> This issue was not present in FlexJS 0.7.0.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)