2010-07-06 30 views
1

Je travaille sur la mise à jour d'une application de MX7 à 9 et je la teste sur le serveur de développement de mon Mac. J'ai une page avec un grand cfswitch - 20 cas différents, mais pas plus de 10-12 lignes. En CF9 que, chaque fois que l'un de ces cas, il ne un cfinclude (qui est presque tous), je reçois une erreur le long des lignes de:ColdFusion 9 Upgrade: décalage de position de cible de branche invalide

org.apache.bcel.generic.ClassGenException: Invalid branch target position offset for jsr[168](3):-1: -1: astore[58](2) 27 at 
cfindex2ecfm581352809._factor4(/Users/dlaughland/Workspace/abcapp/surveymanager /surveys/survey/index.cfm:34) at 
cfindex2ecfm581352809._factor28(/Users/dlaughland/Workspace/abcapp/surveymanager/surveys/survey/index.cfm:33) at 
cfindex2ecfm581352809.runPage(/Users/dlaughland/Workspace/abcapp/surveymanager/surveys/survey/index.cfm:1) at 
cfApplication2ecfc1705547767$funcONREQUEST.runFunction(/Users/dlaughland/Worksp ace/abcapp/Application.cfc:215) 

Je googlé abondamment, et la meilleure explication que je peux trouver est une erreur JDK censée être corrigée dans MX7! Qu'est-ce qui cause ça? Comment je le répare? Ce n'est pas la seule page avec un grand cfswitch donc je ne veux vraiment pas tout ré-écrire dans les structures cfif.

+0

fichier un bug: http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=83504 – Henry

+0

Je suppose que je le ferai, mais j'espérais en quelque sorte une solution qui n'implique pas une attente de 6 mois et aucune garantie. ;) – jabberwik

+0

Essayez de prendre le code d'un de ces includes et placez-le dans l'instruction CFCASE à la place. Vous obtiendrez peut-être un meilleur message d'erreur sur ce qui ne va pas ou vous saurez qu'il y a un problème avec CFINCLUDE et que vous pouvez explorer d'autres techniques. – ale

Répondre

0

Vous pouvez générer un bogue, mais voici quelques étapes qui pourraient vous aider à contourner le problème. Essayez de mettre à jour votre version de JRE, vous pouvez obtenir le dernier et le meilleur here. Vous pouvez ensuite demander à CF d'utiliser ce JRE via votre CF Admin> Paramètres du serveur> Java et JVM. Autres instructions here.

  • Essayez d'utiliser un conteneur de servlet, par exemple, utilisez Tomcat au lieu de JRun. Voici quelques instructions. Puis-je vous demander si vous allez l'utiliser en production sur un Mac? Sinon, essayez d'exécuter votre code sur un système d'exploitation qui reflétera votre site en direct. Le bug (s'il s'agit d'un bug) peut ne pas être dans cette version de CF.

    Espérons que quelque chose aidera.

  • +0

    J'avais considéré que c'était un bug de plate-forme Mac. Je travaille sur la mise en place d'un serveur virtuel un peu plus proche de nos serveurs de production. Si cela ne fonctionne pas, je vais essayer votre idée Tomcat. Merci pour les commentaires! P.S. Sur Mac, les mises à jour Java proviennent uniquement d'Apple dans les mises à jour logicielles normales. La dernière version est 1.6.0_20b02. – jabberwik

    +0

    J'ai installé CF9 sur notre environnement Linux et cela m'a donné la même erreur. Ce n'est donc pas un bug de plate-forme. Tomcat n'est pas une option car nous n'avons pas de licence Enterprise. Je l'aime bien pour mon environnement de développement. – jabberwik

    0

    Si vous avez effectué une mise à niveau de CF7 vers CF9 avec le code déjà présent sur le serveur, essayez de supprimer toutes les classes de WEB-INF/cfclasses et de redémarrer CF.

    +0

    Merci pour les commentaires, mais ce n'est pas une mise à niveau dans ce cas. J'ai fait une installation propre de CF9 pour tester le code. – jabberwik