Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weird issue in Flash Builder 4.7 #223

Closed
FLEXIncubator opened this issue Oct 13, 2012 · 22 comments
Closed

Weird issue in Flash Builder 4.7 #223

FLEXIncubator opened this issue Oct 13, 2012 · 22 comments

Comments

@FLEXIncubator
Copy link

This is pretty weird and maybe this is not Feathers related thing at all. Still, want to point out. I am using Flash Builder 4.7 now with AIR SDK 3.4. I downloaded latest Feathers code today from github. And now, from time to time, strange compile-time errors appears. The thing is that they always appear at same 2 places (in VectorListCollectionDataDescriptor)

  • public function addItemAt(data:Object, item:Object, index:int):void
  • public function removeItemAt(data:Object, index:int):Object

The whole bunch of errors (for removeItemAt) is pasted below. Cleaning the project does not help ( I mean the Clean command menu item in Flash builder). But, when you close Flash Builder, then open again then do clean - errors disappear. Then, just after some time (maybe an hour, maybe less or more), they spontaneously appear again. I just tried (for testing purpose) to delete the whole contents of AddItemAt, and the error disappeared too. Can it be related to new compiler?

com.google.common.collect.ComputationException: java.lang.NullPointerException at com.google.common.collect.ComputingConcurrentHashMap
$ComputingSegment.compute(ComputingConcurrentHashMap.java:167) at com.google.common.collect.ComputingConcurrentHashMap
$ComputingSegment.compute(ComputingConcurrentHashMap.java:116) at
com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:67) at com.google.common.collect.MapMaker
$ComputingMapAdapter.get(MapMaker.java:623) at com.adobe.flash.compiler.internal.projects.CompilerProject.getCacheForScope(CompilerProject.java:701) at
com.adobe.flash.compiler.internal.scopes.ASScope.findPropertyQualified(ASScope.java:1476) at
com.adobe.flash.compiler.internal.definitions.references.ResolvedQualifiersReference.resolve(ResolvedQualifiersReference.java:80) at
com.adobe.flash.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1049) at
com.adobe.flash.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1089) at
com.adobe.flash.compiler.internal.definitions.ClassDefinition.resolveBaseClass(ClassDefinition.java:373) at
com.adobe.flash.compiler.internal.definitions.TypeDefinitionBase$TypeIterator.pushChildren(TypeDefinitionBase.java:284) at
com.adobe.flash.compiler.internal.definitions.TypeDefinitionBase$TypeIterator.next(TypeDefinitionBase.java:218) at
com.adobe.flash.compiler.internal.definitions.TypeDefinitionBase$TypeIterator.next(TypeDefinitionBase.java:176) at
com.adobe.flash.compiler.internal.scopes.TypeScope.getPropertyForScopeChain(TypeScope.java:261) at
com.adobe.flash.compiler.internal.scopes.TypeScope.getPropertyForScopeChain(TypeScope.java:188) at
com.adobe.flash.compiler.internal.scopes.ASScope.findProperty(ASScope.java:1038) at com.adobe.flash.compiler.internal.scopes.ASScope.findProperty(ASScope.java:
981) at com.adobe.flash.compiler.internal.scopes.ASScope.findProperty(ASScope.java:1161) at
com.adobe.flash.compiler.internal.scopes.ASScope.findProperty(ASScope.java:919) at
com.adobe.flash.compiler.internal.scopes.ASScopeCache.findPropertyQualified(ASScopeCache.java:267) at
com.adobe.flash.compiler.internal.scopes.ASScope.findPropertyQualified(ASScope.java:1478) at
com.adobe.flash.compiler.internal.definitions.references.ResolvedQualifiersReference.resolve(ResolvedQualifiersReference.java:80) at
com.adobe.flash.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1049) at
com.adobe.flash.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:1089) at
com.adobe.flash.compiler.internal.definitions.DefinitionBase.resolveType(DefinitionBase.java:871) at
com.adobe.flash.compiler.internal.semantics.MethodBodySemanticChecker.checkFormalsVsActuals(MethodBodySemanticChecker.java:758) at
com.adobe.flash.compiler.internal.semantics.MethodBodySemanticChecker.checkFunctionCall(MethodBodySemanticChecker.java:842) at
com.adobe.flash.compiler.internal.as.codegen.ABCGeneratingReducer.reduce_functionAsMemberExpr(ABCGeneratingReducer.java:3960) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.action_327(CmcEmitter.java:5339) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.dispatchAction(CmcEmitter.java:8606) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39704) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39681) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39723) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39703) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39681) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39723) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39703) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39681) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39732) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39703) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39681) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceSubgoals(CmcEmitter.java:39723) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduceAntecedent(CmcEmitter.java:39703) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.reduce(CmcEmitter.java:39681) at
com.adobe.flash.compiler.internal.as.codegen.CmcEmitter.burm(CmcEmitter.java:39983) at
com.adobe.flash.compiler.internal.as.codegen.ABCGenerator.generateInstructions(ABCGenerator.java:232) at
com.adobe.flash.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction(ABCGenerator.java:397) at
com.adobe.flash.compiler.internal.as.codegen.ABCGenerator.generateMethodBodyForFunction(ABCGenerator.java:351) at
com.adobe.flash.compiler.internal.as.codegen.ABCGenerator.generateFunction(ABCGenerator.java:266) at
com.adobe.flash.compiler.internal.as.codegen.ClassDirectiveProcessor.declareFunction(ClassDirectiveProcessor.java:646) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:215) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:189) at
com.adobe.flash.compiler.internal.as.codegen.GlobalDirectiveProcessor.declareClass(GlobalDirectiveProcessor.java:423) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:207) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:189) at
com.adobe.flash.compiler.internal.as.codegen.GlobalDirectiveProcessor.declarePackage(GlobalDirectiveProcessor.java:449) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.processNode(DirectiveProcessor.java:224) at
com.adobe.flash.compiler.internal.as.codegen.DirectiveProcessor.traverse(DirectiveProcessor.java:189) at
com.adobe.flash.compiler.internal.as.codegen.ABCGenerator.generate(ABCGenerator.java:126) at
com.adobe.flash.compiler.internal.units.ASCompilationUnit.handleABCBytesRequest(ASCompilationUnit.java:374) at
com.adobe.flash.compiler.internal.units.CompilationUnitBase.processABCBytesRequest(CompilationUnitBase.java:866) at
com.adobe.flash.compiler.internal.units.CompilationUnitBase.access$300(CompilationUnitBase.java:107) at
com.adobe.flash.compiler.internal.units.CompilationUnitBase$4$1.call(CompilationUnitBase.java:309) at com.adobe.flash.compiler.internal.units.CompilationUnitBase
$4$1.call(CompilationUnitBase.java:305) at com.adobe.flash.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:228) at
com.adobe.flash.compiler.internal.units.requests.RequestMaker$1.call(RequestMaker.java:222) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at
java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187) at
com.google.common.collect.CustomConcurrentHashMap.hash(CustomConcurrentHashMap.java:1432) at
com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:66) at com.google.common.collect.MapMaker
$ComputingMapAdapter.get(MapMaker.java:623) at
com.adobe.flash.compiler.internal.scopes.ASProjectScope.addScopeToCompilationUnitScopeList(ASProjectScope.java:1306) at
com.adobe.flash.compiler.internal.projects.CompilerProject$ScopeMakerFunction.apply(CompilerProject.java:106) at
com.adobe.flash.compiler.internal.projects.CompilerProject$ScopeMakerFunction.apply(CompilerProject.java:95) at
com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:155) ... 70 more

@joshtynjala
Copy link
Member

Must be the compiler. I have not changed that class recently.

@jenschr
Copy link

jenschr commented Jan 10, 2013

Quickfix: change <*> to
Found it here: http://forums.adobe.com/message/4833011

BTW: Amazing how little Adobe are replying in their own forums these days? I hardly see anyone but community members offer solutions these days.

@ghost
Copy link

ghost commented Jan 10, 2013

Is it any wonder people are fleeing from Flash/Flex/AIR technology like
rats abandoning a sinking ship?

On a related note, after spending a month prototyping an enterprise app
utilizing AIR and Josh's excellent Feathers library, we were so thoroughly
disappointed by the app's performance (not the least of which was up to 15
sec. wait to load AIR into the device) that now we are rushing to re-code
everything in Objective-C.

I have been using Flash since version 2 and it really hurts to have to
abandon this technology, but Adobe has failed miserably in just about every
endeavor to keep it competitive in the industry and I'm afraid that the
Apache Flex community won't make any real strides so long as the technology
remains tied to Adobe.

On Thu, Jan 10, 2013 at 6:31 PM, Jens Chr Brynildsen <
notifications@github.com> wrote:

Quickfix: change <*> to
Found it here: http://forums.adobe.com/message/4833011

BTW: Amazing how little Adobe are replying in their own forums these days?
I hardly see anyone but community members offer solutions these days.


Reply to this email directly or view it on GitHubhttps://github.com//issues/223#issuecomment-12108457.

@joshtynjala
Copy link
Member

Unfortunately, changing Vector.<*> to Vector.<Object> isn't an acceptable solution.

var vec:Vector.<String> = new <String>[];
trace(vec is Vector.<*>); //true
trace(vec is Vector.<Object>); //false

@jenschr
Copy link

jenschr commented Jan 11, 2013

Josh. My take is that this is just a compiler bug that won't ever happen at runtime. Won't the compiler (technically) treat these as "Object" when making the bytecode regardless of them they being set to be "*"?

@jenschr
Copy link

jenschr commented Feb 12, 2013

Update: someone suggested that one turns off "Marc Occurrences" in Flash Builder and the error will disappear. Worked for me. Try and feedback?

@ghost
Copy link

ghost commented Mar 15, 2013

Wow, yeah, that actually worked. In Eclipse's preferences, go to Java->Editor->Mark Occurrences and unselect the top check box. I haven't tried unselecting individual check boxes yet.

@ghost
Copy link

ghost commented Mar 15, 2013

Nevermind, my ComputationException: java.lang.NullPointerExceptions came right back.

@joshtynjala
Copy link
Member

As a workaround, you might try putting the Feathers source code into a separate library project. It should only build when you drop in a new version of the code.

@AlBirdie
Copy link

I've encountered this FB issue as well. Simple solution; remove the two methods, save the file and write them own you own. That will remove the "error".
Did I mention that I hate FB recently? If not, I HATE it! $500 alpha software. Great work Adobe!

@niggeulimann
Copy link

This issue "may" have been fixed! --> http://forums.adobe.com/message/5184352#5184352

@AlBirdie: Unfortunately that will not work in every case - and yes: it sucks!

@jenschr
Copy link

jenschr commented Nov 22, 2013

Nope. Not fixed. I just got it again using FB4.7 / AIR SDK 3.9 :-(

@joshtynjala
Copy link
Member

I switched to the new compiler months ago, and I haven't encountered this error yet. I use IntelliJ IDEA, though. It sounds like maybe this issue related to Flash Builder's deeper integration with the compiler?

@IngweLand
Copy link

Yes, it might be the Flash Builder. Typically, cleaning the project solves the issues. However, not always (especially after making release build). Then you should restart the FB and clean the project again.

@jenschr
Copy link

jenschr commented Nov 22, 2013

Yeah. Restarting Flash Builder removed it for me as well. Yet another sign that this is a Flash Builder/Compiler error and that Adobe never fixed it properly. I see that way too often these days. Fixes are half baked and the Adobe employees barely reply to problems in their own forums these days...

@kheftel-old
Copy link

Arrgh. I'm still getting it in FB 4.7 and AIR 4.0

@imdfl
Copy link

imdfl commented Jun 12, 2014

I solved the problem by modifying the source files ever so slightly:

  1. removed all unnecessary includes
  2. changed one private function in each of the classes that generated the compile error, into protected.

Unbelievable but it worked (consistently, over about 10 files that produced the ComputationException).

@kheftel-old
Copy link

For me, what works in FB 4.7 is turning off "Mark Occurrences". Sometimes I have to turn it on, close FB, restart FB, and then turn it off again for it to work.

Here's a picture of the icon set to OFF:
image

@flashape
Copy link

Note to anyone else still hitting this issue, simply re-saving VectorListCollectionDataDescriptor.as fixed the issue for me.

@kheftel-old
Copy link

This issue still exists, on mac now, whereas before I was on a win8 laptop. Screwing around with combinations of "Mark Occurrences" on and off, running clean on my projects, and restarting FB eventually got it to go away. For now. For me, this comes up every few weeks or so.

@GaiusCoffey
Copy link

Not sure whether or not this is coincidental, but I saw the same issue on a clean FB install and seem to have resolved it through updating to the current SDK as per this; https://helpx.adobe.com/flash-builder/kb/overlay-air-sdk-flash-builder.html

@joshtynjala
Copy link
Member

Good to know! Starling 2.0 and Feathers 3.0 require AIR 19, so going forward, everyone will have no choice but to update the AIR SDK used by Flash Builder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants