Examples of errors detected by the V6067 diagnostic
V6067. Two or more case-branches perform the same actions.
GeoGebra
V6067 Two or more case-branches perform the same actions. DrawConic3D.java(212), DrawConic3D.java(215)
@Override protected boolean updateForItSelf() { .... if (conic.getType() == GeoConicNDConstants.CONIC_SINGLE_POINT) { .... } else { if (visible != Visible.FRUSTUM_INSIDE) { // no outline when frustum .... switch (conic.getType()) { case GeoConicNDConstants.CONIC_CIRCLE: updateEllipse(brush); // <= break; case GeoConicNDConstants.CONIC_ELLIPSE: updateEllipse(brush); // <= break; case GeoConicNDConstants.CONIC_HYPERBOLA: updateHyperbola(brush); break; case GeoConicNDConstants.CONIC_PARABOLA: updateParabola(brush); break; case GeoConicNDConstants.CONIC_DOUBLE_LINE: createTmpCoordsIfNeeded(); brush.segment(tmpCoords1.setAdd3(m, tmpCoords1.setMul3(d, minmax[0])), tmpCoords2.setAdd3(m, tmpCoords2.setMul3(d, minmax[1]))); break; case GeoConicNDConstants.CONIC_INTERSECTING_LINES: case GeoConicNDConstants.CONIC_PARALLEL_LINES: updateLines(brush); break; default: break; } } } } The class has updateCircle method which most likely was intended to be utilized here
GeoGebra
V6067 Two or more case-branches perform the same actions. RendererImplShadersD.java(243), RendererImplShadersD.java(245)
@Override protected int getGLType(Type type) { switch (type) { case TRIANGLE_STRIP: return GL.GL_TRIANGLE_STRIP; case TRIANGLE_FAN: return GL.GL_TRIANGLE_STRIP; // <= case TRIANGLES: return GL.GL_TRIANGLES; case LINE_LOOP: return GL.GL_LINE_LOOP; case LINE_STRIP: return GL.GL_LINE_STRIP; } return 0; } Most likely, GL.GL_TRIANGLE_FAN was intended
GeoGebra
V6067 Two or more case-branches perform the same actions. PointNDFold.java(38), PointNDFold.java(43)
private static GeoElement doGetTemplate( Construction cons, GeoClass listElement ) { switch (listElement) { case POINT: return new GeoPoint(cons); case POINT3D: return (GeoElement) cons.getKernel().getGeoFactory().newPoint(3, cons); case VECTOR: return new GeoVector(cons); case VECTOR3D: return (GeoElement) cons.getKernel().getGeoFactory().newPoint(3, cons); } return new GeoPoint(cons); } Apache Hadoop
V6067 Two or more case-branches perform the same actions. TimelineEntityV2Converter.java(386), TimelineEntityV2Converter.java(389)
public static ApplicationReport convertToApplicationReport(TimelineEntity entity) { .... Set<TimelineMetric> metrics = entity.getMetrics(); if (metrics != null) { long vcoreSeconds = 0; long memorySeconds = 0; long preemptedVcoreSeconds = 0; long preemptedMemorySeconds = 0; for (TimelineMetric metric : metrics) { switch (metric.getId()) { case ApplicationMetricsConstants.APP_CPU_METRICS: vcoreSeconds = getAverageValue(metric.getValues().values()); break; case ApplicationMetricsConstants.APP_MEM_METRICS: memorySeconds = getAverageValue(metric.getValues().values()); break; case ApplicationMetricsConstants.APP_MEM_PREEMPT_METRICS: preemptedVcoreSeconds = getAverageValue(metric.getValues().values()); break; case ApplicationMetricsConstants.APP_CPU_PREEMPT_METRICS: preemptedVcoreSeconds = getAverageValue(metric.getValues().values()); break; default: // Should not happen.. break; } } .... } .... } Apache Dubbo
V6067 Two or more case-branches perform the same actions. JVMUtil.java(67), JVMUtil.java(71)
private static String getThreadDumpString(ThreadInfo threadInfo) { .... if (i == 0 && threadInfo.getLockInfo() != null) { Thread.State ts = threadInfo.getThreadState(); switch (ts) { case BLOCKED: sb.append("\t- blocked on " + threadInfo.getLockInfo()); sb.append('\n'); break; case WAITING: // <= sb.append("\t- waiting on " + threadInfo.getLockInfo()); sb.append('\n'); break; case TIMED_WAITING: // <= sb.append("\t- waiting on " + threadInfo.getLockInfo()); sb.append('\n'); break; default: } } .... }